Таким образом, у меня есть множество отношений между пользователями и фотографиями через сводную таблицу user_photo
. Я использую belongsToMany('Photo')
в моей модели пользователя. Однако проблема в том, что у меня есть десяток столбцов в моей таблице фотографий, которые мне больше не нужны (особенно во время ответа json). Так примером может быть:Laravel принадлежитTMMany, чтобы возвращать только определенные столбцы
//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()
, да, я бы хотел, чтобы все столбцы были нормальными.
EDIT: Я пробовал Get specific columns using "with()" function in Laravel Eloquent, но столбцы по-прежнему выбираются. Также https://github.com/laravel/laravel/issues/2306
Я попытался это, но он все равно будет выбрать другие столбцы ... – tiffanyhwang
Fixed 'belongsToMany ('Photo')'. В таблице 'photo_user' есть поля' photo_id' и 'user_id'. – tiffanyhwang
Попробуйте использовать метод get вместо select. Вызывает ли это исключение? – jah