@EVOSandru6

Почему в laravel простой :string метод Eloquent модели вызывается как связь?

Добрый день,

Есть непонятка при вызове метода модели Edition.

namespace App\Entity\Vehicle;

use Illuminate\Database\Eloquent\Model;

class Edition extends Model
{
    public function brand()
    {
        return $this->belongsTo(Brand::class);
    }

    public function joke() :string
    {
        return 'hello';
    }
}


При вызове методов в обоих случаях:

$edition = Edition::findOrFail(1);
        dd($edition->joke());
        dd($edition->brand());


Вываливаются следующие ошибки:

Method Illuminate\Database\Query\Builder::brand does not exist.

и

Method Illuminate\Database\Query\Builder::joke does not exist.

Связь brand он не определяет, а метод joke принимает за несуществующую связь.

Laravel - 5.6
Postgres - 9.6.9

В чем может быть причина?
  • Вопрос задан
  • 141 просмотр
Решения вопроса 2
@vism
Чето вы намудрили, что dd($edition); выводит?
Ответ написан
v_decadence
@v_decadence
Ощущение, что на деле используется какой-то другой класс Edition или у вас не залиты изменения в классе Edition.
Проверьте правильность полных путей до класса.
get_class($edition)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы