Laravel 验证错误消息 required_if 无效
Laravel Validation Error Message required_if not working
我正在使用 Laravel 5.2
验证表单
对输入 youtube-embed
使用验证检查 required_if
。验证成功进行,但自定义错误消息不起作用。这是代码,也许有人可以看一下。
$messages = [
'youtube-embed.required_if' => 'Please paste in your youtube embed code',
];
$this->validate($request, [
'youtube-embed' => 'required_if:youtube,on',
]);
这是 laravel 返回的错误消息,而不是我的自定义错误:
The youtube-embed field is required when youtube is on.
试试这个:
$this->validate($request,
['youtube-embed' => 'required_if:youtube,on',],
['required_if' => 'Please paste in your youtube embed code',]
);
基本上您可以将自定义消息作为验证函数中的第三个参数传递。
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$rules = [
'payout_method' => 'required:in,bankTransfer,paypal',
'paypal_email' => 'required_if:payment_type,paypal|email',
'receiver' => 'required_if:payment_type,bankTransfer|max:45',
'iban' => 'required_if:payment_type,bankTransfer|max:45|iban',
'bic' => 'required_if:payment_type,bankTransfer|max:15|bic',
];
return $rules;
}
/**
* Get the error messages for the defined validation rules.
*
* @return array
*/
public function messages()
{
return [
'payout_method.required' => trans('validation.attributes.payout_type_required'),
'paypal_email.required_if' => trans('validation.attributes.paypal_email_required'),
'paypal_email.email' => trans('validation.attributes.paypal_email_invalid'),
'iban.required_if' => trans('validation.attributes.bank_account_required'),
'bic.required_if' => trans('validation.attributes.bank_swift_required'),
'iban.iban' => trans('validation.attributes.bank_account_invalid'),
'bic.bic' => trans('validation.attributes.bank_swift_invalid'),
];
}
在这种情况下我能做什么? Laravel return 'The paypal email field is required.' 适用于其他领域,仅不适用于 required_if
如果您使用 Request
class:
public function messages()
{
return [
'youtube-embed.required' => 'Your custom message here.',
];
}
适用于 Laravel 7
我正在使用 Laravel 5.2
验证表单对输入 youtube-embed
使用验证检查 required_if
。验证成功进行,但自定义错误消息不起作用。这是代码,也许有人可以看一下。
$messages = [
'youtube-embed.required_if' => 'Please paste in your youtube embed code',
];
$this->validate($request, [
'youtube-embed' => 'required_if:youtube,on',
]);
这是 laravel 返回的错误消息,而不是我的自定义错误:
The youtube-embed field is required when youtube is on.
试试这个:
$this->validate($request,
['youtube-embed' => 'required_if:youtube,on',],
['required_if' => 'Please paste in your youtube embed code',]
);
基本上您可以将自定义消息作为验证函数中的第三个参数传递。
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$rules = [
'payout_method' => 'required:in,bankTransfer,paypal',
'paypal_email' => 'required_if:payment_type,paypal|email',
'receiver' => 'required_if:payment_type,bankTransfer|max:45',
'iban' => 'required_if:payment_type,bankTransfer|max:45|iban',
'bic' => 'required_if:payment_type,bankTransfer|max:15|bic',
];
return $rules;
}
/**
* Get the error messages for the defined validation rules.
*
* @return array
*/
public function messages()
{
return [
'payout_method.required' => trans('validation.attributes.payout_type_required'),
'paypal_email.required_if' => trans('validation.attributes.paypal_email_required'),
'paypal_email.email' => trans('validation.attributes.paypal_email_invalid'),
'iban.required_if' => trans('validation.attributes.bank_account_required'),
'bic.required_if' => trans('validation.attributes.bank_swift_required'),
'iban.iban' => trans('validation.attributes.bank_account_invalid'),
'bic.bic' => trans('validation.attributes.bank_swift_invalid'),
];
}
在这种情况下我能做什么? Laravel return 'The paypal email field is required.' 适用于其他领域,仅不适用于 required_if
如果您使用 Request
class:
public function messages()
{
return [
'youtube-embed.required' => 'Your custom message here.',
];
}
适用于 Laravel 7