php - 使用 eloquent 关系显示“结果”而不是“id”时出现错误,以防该字段是可选的,并留空 - Laravel
问题描述
我正在使用 eloquent 关系来显示sub_category_name
来自另一个表而不是 sub_category_id。当我只输入category_id
并留下sub_category_id
空白即 null 时,我无法显示它的名称,sub_category_id
因为它是未定义的,它会抛出错误Trying to get property 'sub_category_name' of non-object
。如何避免此错误并将值显示为空白而不是找到sub_category_name
.
这是定义关系的模型的代码,以及它检索当前的源代码sub_category_name
,sub_category_id
并显示名称而不是 id。
模型
class MenuItem extends Model
{
use HasFactory;
protected $table = "menu_items";
protected $fillable = ['category_id','sub_category_id', 'item_name', 'item_description'];
public function SubCategories() {
return $this->belongsTo(SubCategory::class, 'sub_category_id');
}
}
活线组件
<tbody>
@foreach($menuitemlist as $key=>$menuitem)
<tr style="background-color: {{ $key % 2 == 0 ? '#fdfdfd': '#f5f5f5' }};">
<td class="px-4 py-2">{{ $menuitemlist->firstitem() + $key }}</td>
<td class="px-4 py-2">{{ $menuitem->category_id }}</td>
<!---Here Is The Code Due To Which It's Throwing An Error When `sub_category_id` Is Null--->
<td class="px-4 py-2">{{ $menuitem->subcategories->sub_category_name }}</td>
<td class="px-4 py-2">{{ $menuitem->item_name }}</td>
<td class="px-4 py-2">{{ $menuitem->item_description }}</td>
<td class="px-4 py-2">
<button wire:click="edit({{ $menuitem->id }})" class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-1 px-4 rounded">
Edit
</button>
<button wire:click="delete({{ $menuitem->id }})" class="bg-red-500 hover:bg-red-700 text-white font-bold py-1 px-4 rounded">
Delete
</button>
</td>
</tr>
@endforeach
</tbody>
解决方案
推荐阅读
- git - Git:如何使用存储库的子文件夹作为子模块?
- objective-c - [NSPopupButton performClick]:menuDidClose:没有被立即调用
- c# - 覆盖同步方法时,如果我想做异步操作,我有哪些选择
- git - Git 和权限
- excel - 使用一个 Word 文档进行邮件合并,但需要根据 Excel 数据进行多次迭代
- python - 同时运行具有两个不同参数的相同脚本
- shell - 绑定一个key接受Fish中的第一个建议词函数
- java - Java:多键/值映射
- python-3.x - 为什么“list.append(str(d) for d in devices)”只返回一个生成器而不填充列表?
- javascript - 没有广告投放时如何折叠空白