Как получить атрибут броска таблицы в Eloquent? - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть таблица запросов, которая принадлежит таблице подкатегорий, которая принадлежит таблице категорий, поэтому из модели запросов можно получить атрибут из категорий?

tables

->requests
id
name
subcategory_id


->subcategories
id
name
category_id


->categories
id
name
color

Так что мне нужно получить цвет из модели запросов,У меня уже есть модели деревьев, созданные

class Request extends Model
{
    public function user()
    {
        return $this->belongsTo(User::class)->get();
    }

    public function color()
    {
        $somemagicstuff;

        return $color;
    }
}

1 Ответ

3 голосов
/ 24 апреля 2019

Вам нужно определить свои отношения:

# Request.php

class Request extends Model
{  
    public function subcategory()
    {    
        return $this->belongsTo(Subcategory::class);
    }
}

-

# Subcategory.php

class Subcategory extends Model
{  
    public function category()
    {    
        return $this->belongsTo(Category::class);
    }
}

Тогда вы можете просто сделать:

$color = Request::first()->subcategory->category->color;

Конечно, вы можете добавитьвычисляемый атрибут вашего Request класса для легкого доступа (имейте в виду, что это может увеличить количество запросов):

# Request.php

class Request extends Model
{  
    public function subcategory()
    {    
        return $this->belongsTo(Subcategory::class);
    }

    public function getColorAttribute()
    {    
        return $this->subcategory->category->color;
    }
}

Тогда:

$color = Request::first()->color;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...