Можно ли получить данные связанной модели внутри текущей модели в Laravel? - PullRequest
0 голосов
/ 29 октября 2018

Я создаю приложение Laravel, которое использует рекурсивное конструирование URL. И я хочу знать, возможно ли получить доступ к данным модели, связанной с hasone, внутри модели, чтобы вернуть созданный URL-адрес непосредственно в представление без взаимодействия с контроллером. \

public function link(){
    var_dump($this->category());
    $url = ['news'];
    $url[] = $this->category()->url;
    $url[] = $this->url;
    return implode('/',$url);
}

Простой пример кода, подобный этому, возвращает этот

Undefined property: Illuminate\Database\Eloquent\Relations\HasOne::$url (View: /???/resources/views/common/news/full_preview.blade.php) (View: /???/resources/views/common/news/full_preview.blade.php) (View: /???/resources/views/common/news/full_preview.blade.php)

Так есть ли какой-нибудь хороший способ решить эту проблему, используя красноречивые модели, или это возможно только при использовании контроллеров и т. Д.?

1 Ответ

0 голосов
/ 29 октября 2018

Вы не должны вызывать $this->category() как функцию. Функция вызывает отношения, а не связанную модель.

Чтобы получить связанную модель, удалите скобки.

$this->category->url

Вот документы для отношений в Laravel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...