首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel验证错误消息required_if不工作

Laravel验证错误消息required_if不工作
EN

Stack Overflow用户
提问于 2016-03-15 23:43:20
回答 3查看 8.5K关注 0票数 2

我正在使用Laravel5.2验证一个表单

对输入required_if使用验证检查youtube-embed。验证成功进行,但自定义错误消息不起作用。这是代码,也许有人可以看一下。

代码语言:javascript
复制
$messages = [
        'youtube-embed.required_if' => 'Please paste in your youtube embed code',
    ];

$this->validate($request, [
        'youtube-embed'      => 'required_if:youtube,on',
    ]);

这是laravel返回的错误消息,而不是我的自定义错误:

代码语言:javascript
复制
The youtube-embed field is required when youtube is on.
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-15 23:51:11

试试这个:

代码语言:javascript
复制
$this->validate($request, 
    ['youtube-embed'      => 'required_if:youtube,on',], 
    ['required_if' => 'Please paste in your youtube embed code',]
);

基本上,您可以将自定义消息作为验证函数中的第三个参数传递。

票数 4
EN

Stack Overflow用户

发布于 2018-03-23 11:16:15

代码语言:javascript
复制
/**
 * 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返回“paypal电子邮件字段是必需的。”对于其他字段,此工作仅不使用required_if。

票数 3
EN

Stack Overflow用户

发布于 2021-03-10 12:22:45

如果您使用的是Request类:

代码语言:javascript
复制
public function messages()
{
    return [
        'youtube-embed.required' => 'Your custom message here.',
    ];
}

关于Laravel 7的工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36024334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档