雄辩的Employee :: query()-> where('id','=',9074)-> get();之间的区别是什么?和Employee :: query()-> where('id',9074)-> get();

时间:2019-06-12 07:00:52

标签: php laravel eloquent laravel-5.8

我通常使用波纹管代码使用where条件查询任何内容

Employee::query()->where('id',9074)->get();

但是波纹管查询也返回相同的输出

Employee::query()->where('id','=',9074)->get();

实际上这两个查询的主要区别是什么?

3 个答案:

答案 0 :(得分:1)

没有区别,=是大多数语句中的默认条件,因此,无论您通过与否,都将得到相同的结果。您也可以避免致电=

query

答案 1 :(得分:0)

为此,您需要检查查询构建器的Where函数

https://github.com/laravel/framework/blob/5.8/src/Illuminate/Database/Query/Builder.php#L596

所以参数是

$ column refers to the table column,所以id

$ operator = null 是指可以在此处列出运算符的运算符 https://github.com/laravel/framework/blob/5.8/src/Illuminate/Database/Query/Builder.php#L181

$ value = null Refers to the column Value so '9074'

$ boolean ='and' Used for Chaning

因此,当您通过laravel时,它将检查该函数的第二个参数,并检查该值是否为有效的运算符(如果找不到有效的运算符),它将视为 = 。您可以在此处看到它< / p>

https://github.com/laravel/framework/blob/5.8/src/Illuminate/Database/Query/Builder.php#L622

Employee::query()->where('id',9074)->get();

由于9074不是有效的运算符,因此它被视为 =

答案 2 :(得分:0)

没有区别。您也可以参考https://laravel.com/docs/5.8/queries#where-clauses以便更好地了解