У меня есть структуру таблицы следующим образом:Laravel - Загружайте только пять игр на пользователя
пользователей
- идентификатор
- имя
- электронной
- пароль
игры
- ID
- Название
И сводная таблица:
game_user
- ID
- оценка
- game_id
- user_ ID
Теперь модель пользователя определяется следующим образом:
class User extends Authenticatable
{
use Notifiable;
protected $fillable = [
'name', 'email', 'password',
];
protected $hidden = [
'password',
];
public function games() {
return $this->belongsToMany(Game::class);
}
}
Теперь, что я заинтересован в этом, это написать один Красноречивый выражение, которое получит мне множество пользователей, каждый из которых с не более пяти игр. Выполнение чего-то вроде User::with('games')->get()
, конечно, выбирает все игры для каждого пользователя.
Как это можно сделать?
У меня есть шесть игр для пользователя1 и два для user2 в моей БД. Ваше решение загружает пять для user1, а для user2 - нет. Вы хотите, чтобы я делил данные БД и конечный результат? – dotslash
@ dotslash вы можете подсчитать количество игр. Если больше 5, возьмите 5, возьмите все. обновил ответ. –
Все те же! :(Смотрите код и вывод: http://pastebin.com/YRW6kKTz – dotslash