我正试图通过我的Laravel API资源返回region
。 region
是与其他表的关系,因此我通过以下方式访问它:
return [
'region' => ['name' => $this->region->name, 'type' => $this->region->type],
];
,并且在区域值不为null之前一直有效。如果region值为null-它给我一个错误-无法使用undefined的名称-因此我尝试通过以下简单的方法来阻止它的发生:
'region' => $this->when($this->region, function(){
return ['name' => $this->region->name, 'type' => $this->region->type];
}),
它可以工作,但是问题是-当表中的region
值为NULL
时-结果中没有“区域”空数组-我需要在前端,所以我尝试这样:
'region' => $this->when($this->region, function(){
return ['name' => $this->region->name, 'type' => $this->region->type];
}),
'region' => $this->when(!$this->region, function(){
return ['name' => '', 'type' => ''];
}),
但是这不起作用-结果内部没有空区域数组:/
我在这里做错什么了吗,还是一个错误?
答案 0 :(得分:0)
比您想象的要容易,您可以将Optional helper对象用于空对象
return [
'region' => [
'name' => optional($this->region)->name,
'type' => optional($this->region)->type
],
];