Есть 3 таблицы:
users
: идентификатор, имя
compliments
: идентификатор, имя
users_compliments
: идентификатор, идентификатор_комментария, идентификатор_пользователя, идентификатор_комплемента
Вот моя модель пользователя:
class User extends Model
public function sent_compliments() {
return
$this->belongsToMany(
'Compliment',
'users_compliments',
'complimentor_id',
'compliment_id'
)->withPivot('user_id');
}
вот пример ответа, если я запускаю $user->sent_compliments()->get()
Illuminate\Database\Eloquent\Collection {
all: [
Compliment {
id: 2,
name: "You are smart",
pivot: Illuminate\Database\Eloquent\Relations\Pivot {
user_id: 6,
id: 99,
},
},
Compliment {
id: 52,
name: "You are funny",
pivot: Illuminate\Database\Eloquent\Relations\Pivot {
user_id: 42,
id: 186,
},
},
],
}
но вот ответ, который я хочу (он включает в себя фактическую модель пользователя, а не просто user_id в сводной таблице)
Illuminate\Database\Eloquent\Collection {
all: [
Compliment {
id: 2,
name: "You are smart",
pivot: Illuminate\Database\Eloquent\Relations\Pivot {
user_id: 6,
id: 99,
},
user {
id: 6,
name: "John"
}
},
Compliment {
id: 52,
name: "You are funny",
pivot: Illuminate\Database\Eloquent\Relations\Pivot {
user_id: 42,
id: 186,
},
user {
id: 42,
name: "Alex"
}
},
],
}
Есть ли способ получить эти данные с красноречивой энергичной загрузкой (например, с помощью команды With::
) вместо итерации по сводной точке, сбора user_ids и ручного запроса к таблице User
?