eloquent where Employee::query()->where('id','=',9074)->get(); 有什么区别?和 Employee::query()->where('id',9074)->get();
Whata is the difference between eloquent where Employee::query()->where('id','=',9074)->get(); and Employee::query()->where('id',9074)->get();
我通常使用波纹管代码使用 where 条件查询任何内容
Employee::query()->where('id',9074)->get();
但是波纹管查询的输出相同 return
Employee::query()->where('id','=',9074)->get();
实际上这两个查询之间的主要区别是什么?
没有区别,=
是大多数语句的默认条件,所以无论你通过它还是不通过它都会导致相同的结果。您也可以避免调用 query
:
Employee::where('id', 9074)->get();
为此,您需要检查查询生成器的 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 时,将检查函数的第二个参数并检查该值是否为有效运算符,如果未找到有效运算符,它将视为 = 你可以在这里看到它
https://github.com/laravel/framework/blob/5.8/src/Illuminate/Database/Query/Builder.php#L622
Employee::query()->where('id',9074)->get();
因为 9074
不是有效的运算符所以它被认为是 =
没有区别。您也可以参考https://laravel.com/docs/5.8/queries#where-clauses以更好地理解
我通常使用波纹管代码使用 where 条件查询任何内容
Employee::query()->where('id',9074)->get();
但是波纹管查询的输出相同 return
Employee::query()->where('id','=',9074)->get();
实际上这两个查询之间的主要区别是什么?
没有区别,=
是大多数语句的默认条件,所以无论你通过它还是不通过它都会导致相同的结果。您也可以避免调用 query
:
Employee::where('id', 9074)->get();
为此,您需要检查查询生成器的 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 时,将检查函数的第二个参数并检查该值是否为有效运算符,如果未找到有效运算符,它将视为 = 你可以在这里看到它
https://github.com/laravel/framework/blob/5.8/src/Illuminate/Database/Query/Builder.php#L622
Employee::query()->where('id',9074)->get();
因为 9074
不是有效的运算符所以它被认为是 =
没有区别。您也可以参考https://laravel.com/docs/5.8/queries#where-clauses以更好地理解