Eloquent创建了错误的查询

时间:2017-02-15 18:46:07

标签: php mysql laravel laravel-5 eloquent

所以我有这个模型,

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();

3 个答案:

答案 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()一起使用。