简体   繁体   English

Laravel-从关系中采摘领域

[英]Laravel - pluck fields from relations

i'm new in laravel and php and now i wanna create a rest api I have this query: 我是laravel和php的新手,现在我想创建一个REST API我有这个查询:

 $questions = Question::with(
 array('picture' => function($query){     
      $query>select('question_id','picture_name')>pluck('picture_name')>all();
     },
       'user'=>function($query){
      $query->select('id','image','name');
     }))->get()->toArray();

my query return this json: 我的查询返回此json:

{
"questions:": [
    {
        "id": 1,
        "title": "23",
        "caption": "last",
        "address": "lsdbabfd",
        "picture": [
            {
                "question_id": 1,
                "picture_name": "1527484678.jpg"
            },
            {
                "question_id": 1,
                "picture_name": "1527485120.jpg"
            }
        ],
        "user": {
            "id": 1,
            "image": "defaultPicture",
            "name": "alex"
        }
    }
  ]
}

but i want this json: 但我想要这个json:

{
"questions:": [
    {
        "id": 1,
        "title": "23",
        "caption": "last",
        "address": "lsdbabfd",
        "picture": [
            "1527484678.jpg",
            "1527485120.jpg"
        ],
        "user": {
            "id": 1,
            "image": "defaultPicture",
            "name": "alex"
        }
    }
  ]
}

how can i do that? 我怎样才能做到这一点? i already tried to do that with Laravel pluck method and Eloquent Mutators 我已经尝试使用Laravel采摘方法和雄辩的突变体做到这一点

you can add attribute method 您可以添加属性方法

class Question extends Model
{
    ...
    protected $appends = ['pictures'];
    public function getPicturesAttribute()
    {
        return $this->pictures->pluck('picture_id');
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM