所以我通过数据透视表 user_photo
在 Users 和 Photos 之间建立了多对多关系。我在我的用户模型中使用 belongsToMany('Photo')
。然而,这里的问题是我的照片表中有十几个我不需要的列(尤其是在 json 响应期间)。所以一个例子是:
//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
最佳答案
您可以使用 belongsToMany 和使用 laravel 关系的选择操作。
public function photos()
{
return $this->belongsToMany('Photo')->select(array('name', 'date'));
}
关于php - Laravel belongsToMany 仅返回特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21646093/