Laravel: 一个字段中相同规则的验证消息
Laravel: validation message for same rules in one field
我是 Laravel 的新手,我尝试验证请求。我必须满足以下要求 class:
namespace App\Http\Requests;
class TestRequest extends FormRequest
{
protected function rules()
{
return [
'group_id' => 'required|exists:groups,id,deleted_at,NULL|exists:group_users,group_id,user_id,' . \Auth::user()->id
];
}
}
我的问题是:
- 我必须检查群组是否存在并且没有被删除。 这是第一个 "exists" 规则。
- 而且我必须检查当前登录的用户是否属于该组。 第二条"exists"规则。
我的问题是:
- 当 2 个中的任何一个失败时,我怎么知道哪个失败了?
- 我想 return 这些存在检查的不同错误消息。我应该怎么做?
- 我是否必须为此编写自定义验证?
PS:我正在使用 Laravel 5.3
我建议编写自定义规则。检查下面的 link 以了解将其添加到代码中的位置
https://laravel.com/docs/5.3/validation#custom-validation-rules
Validator::extend('group_check', function($attribute, $value, $parameters, $validator) {
// Do custom exists check 1;
$group = Group::where('id', $value)->where('deleted_at', 'null')->first();
if (!$group) {
return false;
}
// Do custom exists check 2;
});
Validator::replacer('group_check', function($message, $value, $parameters, $validator) {
// Do custom exists check 1 but instead of returning false, return a custom message
// Do custom exists check 2 return a custom message
});
我是 Laravel 的新手,我尝试验证请求。我必须满足以下要求 class:
namespace App\Http\Requests;
class TestRequest extends FormRequest
{
protected function rules()
{
return [
'group_id' => 'required|exists:groups,id,deleted_at,NULL|exists:group_users,group_id,user_id,' . \Auth::user()->id
];
}
}
我的问题是:
- 我必须检查群组是否存在并且没有被删除。 这是第一个 "exists" 规则。
- 而且我必须检查当前登录的用户是否属于该组。 第二条"exists"规则。
我的问题是:
- 当 2 个中的任何一个失败时,我怎么知道哪个失败了?
- 我想 return 这些存在检查的不同错误消息。我应该怎么做?
- 我是否必须为此编写自定义验证?
PS:我正在使用 Laravel 5.3
我建议编写自定义规则。检查下面的 link 以了解将其添加到代码中的位置
https://laravel.com/docs/5.3/validation#custom-validation-rules
Validator::extend('group_check', function($attribute, $value, $parameters, $validator) {
// Do custom exists check 1;
$group = Group::where('id', $value)->where('deleted_at', 'null')->first();
if (!$group) {
return false;
}
// Do custom exists check 2;
});
Validator::replacer('group_check', function($message, $value, $parameters, $validator) {
// Do custom exists check 1 but instead of returning false, return a custom message
// Do custom exists check 2 return a custom message
});