Я пытаюсь переписать все мои объединения в отношения модели Elequent. Вот что у меня есть:
class SectionAndUser
{
public function sections()
{
return $this->belongsTo('App\Models\Section');
}
public function users()
{
return $this->belongsTo('App\Models\User');
}
...
class User
{
public function sectionAndUser()
{
return $this->hasMany('App\Models\SectionAndUser');
}
...
class Section
{
public function sectionAndUsers()
{
return $this->hasMany('App\Models\SectionAndUser');
}
...
С выбором:
$sections = User::find($userId)->sectionAndUser()->get();
Я получаю результат:
{
"id": 1,
"section_id": 1,
"user_id": 133
}
Как мне теперь присоединить раздел модели 3, содержащий все данные о section_id 1?
Это соединение, которого я надеюсь достичь:
$id=Auth::id();
$results = DB::table('sections')
->join('section_and_users', function ($join) use ($id) {
$join->on('sections.id', '=', 'section_and_users.section_id')
->where('section_and_users.user_id','=', $id);
})
->get();
Ожидаемый результат:
{
"id": 1,
"section_id": 1,
"section_name": 'sectionName'
"user_id": 133
}