为什么附加的查询约束在;“唯一验证规则”;用Laravel文档中的闭包构建?
我指的是添加额外Where子句的章节 在文档示例中,附加查询在闭包中返回:为什么附加的查询约束在;“唯一验证规则”;用Laravel文档中的闭包构建?,laravel,Laravel,我指的是添加额外Where子句的章节 在文档示例中,附加查询在闭包中返回: 'email' => Rule::unique('users')->where(function ($query) { return $query->where('account_id', 1); }) 在我的应用程序中,我通过以下方式验证我的请求: $request->validate([ 'display_name' => [ 'required',
'email' => Rule::unique('users')->where(function ($query) {
return $query->where('account_id', 1);
})
在我的应用程序中,我通过以下方式验证我的请求:
$request->validate([
'display_name' => [
'required',
'string',
'between:3,32',
Rule::unique('devices')->where(function ($query) {
return $query->where('user_id', auth()->id());
})
],
// ...
]);
如果我省略了闭包,我的代码似乎仍能按预期工作:
$request->validate([
'display_name' => [
'required',
'string',
'between:3,32',
Rule::unique('devices')->where('user_id', auth()->id())
],
// ...
]);
使用闭包是否有特殊的原因,如示例中所示?我非常怀疑它是否有区别。它看起来像
Builder::where()
提供了您在那里使用的两种语法
如果提供闭包而不是字段/(运算符)/值参数,则生成的查询条件将放在括号中。所以你可以做一些事情,比如selectdistinct?来自哪里的设备?或(?和?