Laravel条件api资源元素

时间:2018-08-08 08:11:48

标签: laravel

我正试图通过我的Laravel API资源返回regionregion是与其他表的关系,因此我通过以下方式访问它:

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' => ''];
            }),

但是这不起作用-结果内部没有空区域数组:/

我在这里做错什么了吗,还是一个错误?

1 个答案:

答案 0 :(得分:0)

比您想象的要容易,您可以将Optional helper对象用于空对象

return [
   'region' => [
       'name' => optional($this->region)->name, 
       'type' => optional($this->region)->type
    ],
];

Laravel Method Optional Docs