Я пытаюсь получить записи из базы данных, в которой игроки играли в качестве игрока 1 или 2 в игре, чтобы рассчитать валовую прибыль для игрока в профиле. У меня есть следующий Advanced Красноречивый код:advanced where clause failed
$user = User::with('profile')->where('name', $username)->first();
$user_id = $user->id;
$games_model = Games::where(function ($q) {
global $user_id;
$q->where('player1', '=', $user_id)->orWhere('player2', '=', $user_id);
});
$games = $games_model->limit(3)->get();
// get gross profits
$gross_profits = $games_model->sum('bet');
dd($games_model->get()->toArray());
Но когда я пытаюсь взглянуть на результаты сбрасывали, я вижу пустой массив. Я уверен, что мой идентификатор пользователя установлен правильно. Самое смешное, что он возвращал только один результат, а не все результы в базе данных. Я смущен. Спасибо за помощь в продвижении!
Вам не нужно возвращать запрос внутри обратного вызова? Как 'return $ q-> где (...)' Не помню .. BTW '$ games = $ games_model-> sum ('bet');' не должно работать, так как '$ games_model' - это запрос а не Коллекция. Может быть, '$ games-> sum ('bet');' будет работать. – isa424
Вы пытались использовать некоторое число для тестирования вместо '$ user_id'? – Rashad
Это не продвижение, вы нечетны ... как эти отношения? – jycr753