我通常使用波纹管代码使用where条件查询任何内容
Employee::query()->where('id',9074)->get();
但是波纹管查询也返回相同的输出
Employee::query()->where('id','=',9074)->get();
实际上这两个查询的主要区别是什么?
答案 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以便更好地了解