因此,我通過數據透視表user_photo
在用戶和照片之間建立了多對多的關係。我在我的用戶模型中使用belongsToMany('Photo')
。然而,這裏的麻煩是,我的照片表中有十幾列,大多數我不需要(特別是在json響應期間)。因此,一個例子是:Laravel belongsToMany僅返回特定列
//Grab user #987's photos:
User::with('photos')->find(987);
//json output:
{
id: 987,
name: "John Appleseed",
photos: {
id: 5435433,
date: ...,
name: 'feelsgoodman.jpg',
....// other columns that I don't need
}
}
是否有可能修改這一方法,使得Photos
模式將只返回被接受的列(比如通過一個數組['name', 'date']
規定)?
user.php的
public function photos()
{
return $this->belongsToMany('Photo');
}
注:我只想只做一個User->belongsToMany->Photo
時選擇特定的列。當做類似Photo::all()
的事情時,是的,我希望所有列都正常。
編輯:我試過Get specific columns using "with()" function in Laravel Eloquent但列仍被選中。另外https://github.com/laravel/laravel/issues/2306
我試過這個,但它仍然會選擇其他列... – tiffanyhwang
固定'belongsToMany('照片')'。 'photo_user'表有'photo_id'和'user_id'字段。 – tiffanyhwang
嘗試使用get方法而不是select。它是否會拋出異常? – jah