laravel - 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
只有当该公司存在于“分支机构”表中时我才应该申报,但不知道如何申报。如果有人帮我解决这个问题,请提前致谢。
解决方案
$branch
在尝试获取它的属性之前,您应该检查视图是一个对象。在你的情况下$branch
可以是一个对象或null
.
所以你可以打印它喜欢{{ isset($branch) ? $branch->type : '' }}
或更短版本的相同表达式是{{ $branch->type ?? '' }}
.
推荐阅读
- azure - 如何在同一 ARM 模板中授予 VM 对 Key Vault 的访问权限
- mongodb - 如何计算聚合中产生的分组对象?
- playframework - 在 sbt 子项目中播放框架 - 未定义应用程序加载器
- pandas - 在类中包装 pandas daraframe
- c# - 将不同的泛型类型放入数据结构中,然后在删除时处理它们
- python - 如何使用 Python 的 TextBlob 打印关于情绪分析的描述性统计数据?
- java - 在单节点机器中并行运行多个映射器时,在 Hadoop 中面临错误“java.lang.OutOfMemoryError: Java heap space”
- android - adb.exe 太旧;请安装 1.0.39 或更高版本......如何更新 adb 版本
- gps - 哪个是最简单的 NMEA 查询语句,仅用于检测 GPS 设备的存在?
- c++ - 链接器错误:无法解析构造函数