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

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
EVOSandru6
Сообщения: 578
Зарегистрирован: 2014.07.04, 13:33

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

Сообщение EVOSandru6 » 2018.08.05, 20:56

Добрый день,

Есть непонятка при вызове метода модели 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

В чем может быть причина?

chesar
Сообщения: 477
Зарегистрирован: 2013.04.10, 17:49

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

Сообщение chesar » 2018.08.05, 21:23

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

Ответить