laravel - Laravel 知道函数内部的变量,但不知道返回
问题描述
我正在使用 laravel excel 导出我的数据。在 map 函数内部,$credit 和 $debit 变量但是在返回它们时会引发错误。
错误是:
试图获取非对象的属性“名称”
这是我的地图功能:
public function map($partner): array
{
$credit = Bank::whereId($partner->credit)->first(); // also used: Bank::find($partner->credit);
$debit = Bank::whereId($partner->debit)->first();
dd($credit->name) // returns 'test'
return [
$partner->full_name, // this returns correctly.
$credit->name, // returns "Trying to get property 'name' of non-object"
// if use $credit, it returns whole credit object.
$debit->name, // returns "Trying to get property 'name' of non-object"
// if use $credit, it returns whole debit object.
];
}
解决方案
看起来很少$partner
有没有credit
或debit
检查空条件
public function map($partner): array
{
$credit = Bank::whereId($partner->credit)->first(); Bank::find($partner->credit);
$debit = Bank::whereId($partner->debit)->first();
return [
$partner->full_name,
$credit->name??null,
$debit->name??null,
];
}
你也可以做
$data=[$partner->full_name];
isset($credit->name)? array_push($data,$credit->name)?null;
isset($debit->name)? array_push($data,$debit->name)?null;
return $data;
推荐阅读
- json - 如何将可以在任何时间单位的持续时间添加到jq中的给定时间戳?
- python - 如何使用熊猫数据框的余额列计算银行对账单借方/贷方列?
- javascript - 如何在 Angular 中将“选择性输入”设置为表单字段?
- php - 设置 PHP 互联网网关
- python - 不发送适量的精灵
- mongodb - 如何在MongoDB中获取条件字段
- java - 检查带参数的方法是否有参数?
- javascript - 如何在 Laravel 或其他框架中正确编写表单?
- base64 - 如何将散景图转换为 BytesIO 对象以使用 base64 模块对图进行编码
- c# - XCEED PropertyGrid 可以接受结构吗?