laravel - 如何解决 laravel 数据表中的“尝试获取非对象的属性‘名称’”错误?
问题描述
我在这里使用 laravel 中的数据表我试图获取具有关系的数据,有时关系 id 不存在,所以它在 laravel 刀片中给出空值我可以通过检查它是否为空来处理它。但在数据表中,我不能使用它。
returning values to data table
return [
'delivery_run_id' => $run_sheet->delivery_runs->name:
];
当我在 return 语句之前放置它时它工作正常,但我认为这种方法不好
if(empty($run_sheet->delivery_runs->name))
{
$delivery_run = '';
}
else
{
$delivery_run = $run_sheet->delivery_runs->name;
}
我尝试为数据表列设置默认值,但它不起作用
var table = $(tablename).DataTable({
responsive: true,
"order": [],
'aoColumnDefs': [{
'bSortable': false,
'aTargets': ['nosort']
}],
buttons: [
'print',
'copyHtml5',
'excelHtml5',
'csvHtml5',
'pdfHtml5',
],
processing: true,
serverSide: true,
ajax: {
url: url,
type: 'get',
data: filters
},
columns: columns,
"language": {
processing: "<img src='https://thumbs.gfycat.com/WatchfulSnarlingBettong-max-1mb.gif'>"
},
"columnDefs": [
{
"data": null,
"defaultContent": "<button>Edit</button>",
"targets": -1
}
]
});
解决方案
使用三元运算符检查是否设置。
$delivery_run = $run_sheet->delivery_runs->name ?? "";
return [
'delivery_run_id' => $run_sheet->delivery_runs->name ?? "";
];
推荐阅读
- android - 调试时没有在 Android Studio 中捕获异常
- angular - Angular、provider 或 injector,哪一个创建了一个服务实例
- ansible - 如何在 ansible playbook 中使用变量?
- django - 使用 Azure 地图获取用户的当前位置
- java - 为什么不支持 entrySet() 返回的集合的 add/addAll 操作?
- angular - 将 Angular 6 更新到 7 - 依赖警告和打字稿错误
- apache-spark - PySpark 如何从 Dataframe 架构的 StructType 对象中解析和获取字段名称
- node.js - 如何将多个 JSON 对象插入到模式的一个属性中?
- .net - 登录凭证与公共 IP 的映射
- odoo - Odoo:选择树视图项目应链接到特殊视图