首页 > 解决方案 > Laravel - 雄辩的关系和变量

问题描述

我有 2 个表,通过 'company_name'$this->hasMany方法连接。

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

所以在我看来,我显示第一个表中的信息,如果公司有分支机构,我也会显示它们。一切正常,直到那里。我的问题出现在“类型”列中。

@如果公司的类型例如是 '1' ,我会显示某个文本。

所以事情是,如果一家公司没有分支机构,视图会给出一个错误(尝试获取非对象的属性“类型”)......

我已经研究过,但我真的不知道如何解决它。

这是在我的控制器方法中:

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

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

我知道$branch只有当该公司存在于“分支机构”表中时我才应该申报,但不知道如何申报。如果有人帮我解决这个问题,请提前致谢。

标签: laraveleloquenthas-manyisnull

解决方案


$branch在尝试获取它的属性之前,您应该检查视图是一个对象。在你的情况下$branch可以是一个对象或null.

所以你可以打印它喜欢{{ isset($branch) ? $branch->type : '' }}或更短版本的相同表达式是{{ $branch->type ?? '' }}.


推荐阅读