2
我有一個的hasMany關係函數這樣的具體領域:取上的hasMany關係
public function articles()
{
return $this->hasMany('App\Article');
}
而且使用這樣的:
$data = \App\User::with('articles')->get();
我沒有任何問題,它,因爲它正在返回預期的數據。事情是這樣的:
{
"id": 1,
"name": "Jhon",
"lastname": "Doe",
"articles": [
{
"id": 1,
"title": "Article 1",
"status": "published",
"published_at": "2015-04-30"
},
{
"id": 2,
"title": "Article 2",
"status": "draft",
"published_at": null
}
]
}
我想實現,但我仍然不能將它的抓取僅僅是關係的字段的子集,以獲得此:
{
"id": 1,
"name": "Jhon",
"lastname": "Doe",
"articles": [
{
"id": 1,
"title": "Article 1"
},
{
"id": 2,
"title": "Article 2"
}
]
}
我的目的是要找到一個方式來指定模型函數中的字段子集,而不是迭代返回的集合並取消不需要的字段。
這可能嗎?
我以前嘗試過沒有成功的選項2,因爲它在「文章」中返回空。今天我嘗試了選項1,並在「文章」中返回空白。我試過$ query-> orderBy('id','asc');和工作,但與「選擇」方法不起作用。 – Tony
@Tony使用選項1或2時,必須確保已將外鍵包含在select語句('id')中,否則Laravel將不知道如何將對象鏈接在一起,並且文章屬性將始終空着。 – patricus
這是使它工作的一塊!在你的評論之後,我這樣做了: 'return $ this-> hasMany('App \ Article') - > select(''id','title','user_id']);' Foreign_key是答案。謝謝@patricus – Tony