У меня есть модель, способность, которая принадлежит к другой модели AbilityType.
<?php class Ability extends Eloquent { public function abilityType() { return $this->belongsTo('AbilityType'); } public function name() { return $this->abilityType->name; } }
Я могу сделать этот звонок в шаблоне клинка успешно:
$ability->abilityType->name
Но когда я делаю тот же вызов в моей модели Ability, он выдает исключение:
ErrorException Relationship method must return an object of type Illuminate\Database\Eloquent\Relations\Relation
Отличаются ли динамические свойства поведением между слоем представления и модели? Что мне здесь не хватает?
Laravel использует специальный синтаксис getFooAttribute
для загрузки динамических свойств:
class Ability extends Eloquent { public function abilityType () { return $this->belongsTo('AbilityType'); } public function getNameAttribute () { return $this->abilityType->name; } }