【问题标题】:Laravel - pluck fields from relationsLaravel - 从关系中提取字段
【发布时间】:2018-05-28 14:28:19
【问题描述】:

我是 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();

我的查询返回这个 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"
        }
    }
  ]
}

但我想要这个 json:

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

我该怎么做? 我已经尝试使用 Laravel pluck 方法和 Eloquent Mutators 来做到这一点

【问题讨论】:

  • $query>select)>pluck()>all() 是无效代码

标签: php laravel eloquent


【解决方案1】:

你可以添加属性方法

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

【讨论】:

    猜你喜欢
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    • 2019-09-26
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    相关资源
    最近更新 更多