Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 05.08.2018 20:55:03

Почему в laravel простой метод 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

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

Не в сети

#2 06.08.2018 10:30:09

AlexForever
Откуда: Кишинев
Сообщений: 31

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

Попробуйте вызвать joke и brand без скобок

dd($edition->joke);
dd($edition->brand);

Не в сети

Подвал раздела