Laravel - Eloquent 关系和变量

Laravel - Eloquent relations and variables

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

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

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

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

所以问题是,如果公司没有分支机构,视图会给出错误(尝试获取非对象的 属性 'type')...

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

这是我的控制器方法:

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

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

我知道只有当该公司存在于 table 'branches' 时,我才应该申报 $branch,但不知道如何申报。如果有人帮助我,请提前致谢。

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

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