Я пытаюсь убедиться, что запись существует в базе данных перед выполнением действий, связанных с пользователем.Когда я выполняю запрос непосредственно в моем PHPMyAdmin, вот так (для целей тестирования).
SELECT * FROM `chat_participants` WHERE `chat_id` = 2 AND `user_id` = 2
Я получаю правильную запись.Тем не менее, когда я пытаюсь использовать Laravel Query Builder для достижения того же.
dd($this->participants
->where('chat_id', '=', 2)
->where('user_id', '=', 2)
->get()
->first());
Я получаю null.
Есть ли способ убедиться, что запись существует в базе данных с помощью Query Builder?Нужно ли объявлять AND
в построителе запросов?
Обновление: я установил переменную participants
в своем конструкторе.
public function __construct()
{
$this->middleware('auth');
$this->header = DB::table('chat_headers');
$this->participants = DB::table('chat_participants');
$this->messages = DB::table('chat_messages');
}
toSql () создает:
select * from chat_participants`
inner join chat_headers on chat_headers.id = chat_participants.chat_id
inner join chat_rbac on chat_rbac.id = chat_participants.rbac
where chat_participants.chat_id = ? and chat_participants.user_id = ?
and chat_id = ? and user_id = ?