所以我有这个模型,
ReminderModel.php
$reminder = ReminderModel::query()
->where('id', '=', $reminder_id)
->get()
->first();
我在哪里这样做,
select * from 'user_reminders' where ('0' = id and '1' = = and '2' = 109)
Eloquent正在生成以下查询 -
select * from 'user_reminders' where ('id' = 109)
这是错误的查询。相反,雄辩应该创建一个像这样的简单查询 - An uncaught Exception was encountered
Type: Illuminate\Database\QueryException
Message: SQLSTATE[42S22]: Column not found: 1054 Unknown column '0' in 'where clause' (SQL: select * from `user_reminders` where (((`0` = id and `1` = = and `2` = 1))))
Filename: C:\wamp\www\crd\vendor\illuminate\database\Connection.php
Line Number: 647
为什么雄辩生成错误的查询?
SQL异常 -
Shiny.OutputBinding();
答案 0 :(得分:2)
您可以通过以下主键获取记录:
ReminderModel::find($reminder_id);
答案 1 :(得分:2)
可能是因为你的$ reminder_id变量以某种方式得到纠正。确保它是整数。下面的cde工作正常。
$reminder_id=5; //example id
$res = ReminderModel::query()->where("id","=",$reminder_id)->get()->first();
var_dump($res);
答案 2 :(得分:0)
尝试
$reminder = ReminderModel::query()
->where('id', '=', $reminder_id)
->first();
不要将get()与first()一起使用。