鍍金池/ 問答/PHP/ laravel orm with如何指定select字段

laravel orm with如何指定select字段

框架:laravel 5.4

表: pq_coupon

pq_picture

關(guān)系:根據(jù)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');
}     

clipboard.png

查詢失敗,picture整個(gè)為空
代碼2:
(控制器)

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

(models)

function prcture(){
    // belongsTo 多對(duì)一(從屬)
    return $this->belongsTo(\App\Models\Picture::class,'picture_id','id')->select('picture_url');
}    

結(jié)果同上,都是查詢picture為null

求助:如何讓with()指定prcture 只查找prcture_url字段?這兩種方法都不行,是版本問題?
       
               
回答
編輯回答
澐染

我再看看,老了眼睛瞎了


你對(duì)調(diào)一下兩個(gè) key 的位置

                        外鍵模型名稱       外鍵_key       本表的_key
 return $this->belongsTo(Model::class, 'foreign_key', 'local_key');

$data->priture->priture_url;
2018年6月1日 09:37
編輯回答
萌二代

貌似是你的 Model 里面的方法有問題,belongsTo 函數(shù)的第一個(gè)參數(shù)是字符串

2017年5月18日 05:31
編輯回答
何蘇葉

這是原先的寫法
(控制器)
$data = $coupon

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

(models)
function prcture(){

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

結(jié)果:

clipboard.png

所以,如何select('picture_url') ???????????????

*找到問題了,是select()

with(['prcture'=>function($query){$query->select('id','picture_url');}])
2017年6月25日 10:50