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 ?? '' }}
。
我有 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 ?? '' }}
。