Модель
Mode
имеет отношение hasMany
к модели DataSet
.Я хочу загрузить наборы данных с помощью with()
-метода.Работает нормально, если только мне не нужно ограничение на DataSet
за Mode
.Следующий код не работает должным образом.Он ограничивает результаты DataSet
все вместе, а не индивидуально для Mode
.
$modes = $modes->with(['dataSets' => function ($query) use ($user, $count) {
// Select data sets of user from each mode
$query->join('data_set_user', 'id', '=', 'data_set_id')
->where('user_id', $user->id);
if(isset($count))
$query->limit($count);
}])->orderBy('order_value')
->get();
Посмотрите на запрос, который генерирует этот код:
SELECT * FROM `data_sets` INNER JOIN `data_set_user` on `id` = `data_set_id` where `data_sets`.`mode_id` in (?, ?, ?) and `user_id` = ? limit 5"
Есть ли какой-нибудь способ Laravel, чтобы ограничение работало для каждого режима индивидуально ?