Доступ к значениям внутри модели - PullRequest
0 голосов
/ 22 декабря 2018

Я хотел бы получить доступ к данным таблицы внутри метода отношений внутри модели.Но когда я запускаю оператор if, чтобы проверить, является ли тип 'item', он возвращает:

Вызов функции-члена addEagerConstraints () для null

Так что этоне распознает $this->type.Как бы этого добиться?

Я пытался использовать $this->type, чтобы посмотреть, смогу ли я проверить тип таким способом, но не повезло.

class PurchasableItem extends Model
{
    protected $fillable = ['type', 'value', 'amount'];

    function item_data() {
        if($this->type == 'item')
            return $this->hasOne('App\ItemTemplate', 'id', 'value');
    }
}

Так что я хочу, чтобы он возвратил этоотношения, только если тип покупаемого предмета имеет значение item, но когда я пытаюсь запустить его, я получаю следующую ошибку:

вызов функции-члена addEagerConstraints () для null

1 Ответ

0 голосов
/ 22 декабря 2018

Я нашел исправление для достижения того, что хотел другим способом.

Я добавил «данные» в качестве атрибута для модели с помощью

    protected $appends = ['data'];

, затем я изменил полевключить правильные отношения:

    public function getDataAttribute()
    {
        if($this->attributes['type'] == 'item') {
            return ItemTemplate::find($this->attributes['value']);
        } else {
            return License::find($this->attributes['value']);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...