laravel orm with如何指定select字段

框架:laravel 5.4

表: pq_coupon

pq_picture

关系:根据pq_coupon 表中 picture_id 字段,查找出pq_picture的picture_url字段

代码1:
(控制器)

   $data = $coupon
               ->with(['prcture'=>function($query){
              $query->select('picture_url');
            }])
               ->where('id','>=',1)->limit(2)->select('id','note')->get();

(models)
function prcture(){

    
    return $this->belongsTo(\App\Models\Picture::class,'picture_id','id');
}     

https://img2.mukewang.com/5c8f50d00001f88803160226.jpg

查询失败,picture整个为空
代码2:
(控制器)

    $data = $coupon->with('prcture')->where('id','>=',1)->limit(2)->select('id','note')->get();
    

(models)

function prcture(){
    // belongsTo 多对一(从属)
    return $this->belongsTo(\App\Models\Picture::class,'picture_id','id')->select('picture_url');
}    

结果同上,都是查询picture为null

求助:如何让with()指定prcture 只查找prcture_url字段?这两种方法都不行,是版本问题?
       
               
婷婷同学_
浏览 2098回答 3
3回答

www说

貌似是你的 Model 里面的方法有问题,belongsTo 函数的第一个参数是字符串

暮色呼如

我再看看,老了眼睛瞎了 你对调一下两个 key 的位置 外键模型名称 外键_key 本表的_key return $this->belongsTo(Model::class, 'foreign_key', 'local_key'); $data->priture->priture_url;
打开App,查看更多内容
随时随地看视频慕课网APP