Laravel - Красноречивые отношения и переменные - PullRequest
0 голосов
/ 28 января 2019

У меня есть 2 таблицы, соединенные методом 'company_name' с помощью $this->hasMany.

table 'Companies' -> 'company_name', 'logo', 'description';
table 'Branches' -> 'company_name, 'type', address', 'phone';

Так что, на мой взгляд, я отображаю информацию из первой таблицы, И если у компании есть филиалы, япоказать их тоже.Все работает хорошо, пока нет.Моя проблема приходит со столбцом «type».

@ Если тип компании, например, «1», я отображаю определенный текст.

Так что дело в том, что если компанияне имеет ветвей, представление выдает ошибку (пытается получить свойство 'type' не-объекта) ...

Я исследовал, но я действительно не знаю, как ее решить.

Это мой метод контроллера:

$company = Company::where('slug', $slug)->first();
$branch = $company->branch->first();

return view('companies.show', compact('company', 'branch'));

Я знаю, что должен объявить $branch только в том случае, если эта компания существует в таблице «ответвления», но не знаю, как на самом делек.Заранее спасибо, если кто-нибудь мне поможет.

1 Ответ

0 голосов
/ 28 января 2019

Вы должны проверить в представлении $branch объект, прежде чем пытаться получить его свойство.В вашем случае $branch может быть объектом или null.

Таким образом, вы можете напечатать его как {{ isset($branch) ? $branch->type : '' }} или более короткая версия того же выражения - {{ $branch->type ?? '' }}.

...