我正在尝试为注册表单中的邀请字段创建一个自定义验证。
我有一个名为邀请的表格,如下所示:
invites
-id,
-description,
-qty
-used
假设我有一个邀请(ID(IVRZ5L,数量=10,使用=10。注意,在这种情况下,我不能使用这个邀请(IVRZ5L(,因为所有的邀请都已使用。
我想检查数量是否大于已使用的数量,并避免如果所有邀请数量都已使用,用户将被注册。
在我的RegisterController中,我有这样的验证器方法:
protected function validator(array $data)
{
return Validator::make($data, [
'invite' => ['bail', 'required', Rule::exists('invites', 'id')->where(function ($query) {
$query->where('qty', '>', 'used');
})],
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
}
此规则不适用于邀请字段。我做错了什么?
谨致问候。
protected function validator(array $data)
{
return Validator::make($data, [
'invite' => [
'bail',
'required',
Rule::exists('invites', 'id')->where('qty', '>', 'used')
],
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
}