首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel条件api资源元素

Laravel条件api资源元素
EN

Stack Overflow用户
提问于 2018-08-08 16:11:48
回答 1查看 136关注 0票数 0

我正在尝试通过我的Laravel API资源获取返回的regionregion是与其他表的关系,所以我通过以下方式访问它:

代码语言:javascript
复制
return [
   'region' => ['name' => $this->region->name, 'type' => $this->region->type],
];

在region值不为空之前,此操作一直有效。如果region值为空-它会给我一个错误-不能取未定义的名称-所以我试图通过简单地阻止它的发生:

代码语言:javascript
复制
   'region' => $this->when($this->region, function(){    
      return ['name' => $this->region->name, 'type' => $this->region->type];
    }),

它可以工作,但问题是-当表中的region值为NULL -它没有给出‘region’空数组作为结果-这是我在前端需要的,所以我尝试这样做:

代码语言:javascript
复制
            'region' => $this->when($this->region, function(){
                return ['name' => $this->region->name, 'type' => $this->region->type];
            }),
            'region' => $this->when(!$this->region, function(){
                return ['name' => '', 'type' => ''];
            }),

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

我是不是做错了什么,或者是个bug?

EN

回答 1

Stack Overflow用户

发布于 2019-04-10 03:33:17

这比您想象的要简单,您可以对null对象使用可选的helper对象

代码语言:javascript
复制
return [
   'region' => [
       'name' => optional($this->region)->name, 
       'type' => optional($this->region)->type
    ],
];

Laravel Method Optional Docs

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51741688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档