1
我想過濾我在我的渠道hasmany關係中的列的選擇,以及使用where方法過濾它,但無濟於事。任何想法?Laravel Eager加載,過濾和限制列字段不起作用
$data['users'] = Users::with(array('Channels' => function($q){
$q->where('is_default','=', 1)->select(array('channel_name', 'channel_id'));
}))->get(array('id'));
但是,這工作得很好。
$data['users'] = Users::with(array('Channels' => function($q){
$q->where('is_default','=', 1)
}))->get(array('id'));
我試圖把選擇方法之前,首先將在其中方法仍不能正常工作
編輯: 這些SQL查詢的執行這真是我想要的東西但它不填滿關係屬性。
選擇created_at
,id
,name
,referrer
從users
其中status
=?限制10偏移0
選擇channel_name
,channel_id
從channels
其中channels
。 user_id
in(?,?,?,?,?,?,?,?,?,?)和is_default
=?
嗨,感謝您的回覆,結構如下這個用戶模型有很多渠道。頻道表具有引用users表中的id的外鍵user_id。我嘗試了你的建議,在get()中添加user_id並返回缺少字段的sql錯誤。 SQL是這樣的:從'users'中選擇'id','user_id',這真的是不正確的。 –
在上面添加了一個修改。 –
檢查更新後的答案,在兩個答案中'user_id'必須存在於'select'語句中,因爲'user_id'是外鍵。 –