у меня есть код ниже
$id = 1;
$idz = 3;
$nums = DB::select(DB::raw('select * from chat_user where user_id in (?, ?) and chat_id in (select chat_id from chat_user group by chat_id having count(*) > 1)'), array($id, $idz));
return $nums->count();
здесь у меня есть таблица с именем «user_chat», и я хочу выяснить, если я выбираю две строки по их «user_id», они имеют одинаковый «chat_id». код работает нормально, когда я тестирую его в секции sql phpmyadmin и возвращаю результат.
select * from chat_user where user_id in (1, 3) and chat_id in (select chat_id from chat_user group by chat_id having count(*) > 1)
но когда я пишу это в стиле Laravel, я получаю эту ошибку:
Call to a member function count() on a non-object
любая помощь будет очень полезной!
DB::select
возвращает массив, а не объект.
использование count($nums)
вместо.
когда вы используете DB::select()
Возвращенная вещь — результат. не объект построителя запросов.
Вы можете решить это тремя способами.
SELECT COUNT(id)....