У меня есть модель User
, которая относится к модели Section
через сводную модель UserTrainingSection
.У меня есть сводная таблица, в которой хранятся внешние ключи для обеих таблиц с именем section_user
.
. У меня есть 2 дополнительных столбца сводной таблицы с именами completed
и completed_date
.
.Имея в виду, что когда я получаю свои данные, он возвращает все столбцы из модели User
вместе с дополнительными столбцами сводных данных.
class Section extends Model
{
public $table = "sections";
public $fillable = [
'id',
'name',
'description',
'parent',
'position',
'completion_percentage'
];
public function users()
{
return $this->belongsToMany(User::class, 'section_user')->using('App\Models\UserTrainingSection')->withPivot('completed', 'completed_date');
}
}
В моем API-сервисе я получаю свои данные следующим образом:
Section::with(['users' => function ($q) {
$q->where('users.id', Auth::user()->id);
}])->first();
Как мне только вернуть столбцы сводной таблицы и исключить столбцы из пользовательской таблицы?
В настоящий момент он возвращает что-то вроде этого:
"sections": [
{
"id": 2,
"name": "Subsection 1 training",
"description": null,
"parent": 1,
"position": 2,
"completion_percentage": null,
"created_at": "2018-05-04 09:54:09",
"updated_at": "2018-05-11 09:14:59",
"users": [
{
"id": 1,
"name": "Test",
"email": "test@test.com",
"created_at": "12-04-2018 14:51:42",
"updated_at": "2018-04-19 14:14:36",
"pivot": {
"section_id": 2,
"user_id": 1,
"completed": 1,
"completed_date": "31/05/2018",
"expires": "31/05/2019"
},
}
]
}
]
Что бы я хотелнапример, возвращение выглядит примерно так:
"sections": [
{
"id": 2,
"name": "Subsection 1 training",
"description": null,
"parent": 1,
"position": 2,
"completion_percentage": null,
"created_at": "2018-05-04 09:54:09",
"updated_at": "2018-05-11 09:14:59",
"users": [
{
"pivot": {
"section_id": 2,
"user_id": 1,
"completed": 1,
"completed_date": "31/05/2018",
"expires": "31/05/2019"
}
}
]
}
]
Поэтому я в основном избавляюсь от ненужных пользовательских данных и возвращаю только сводные данные.