【问题标题】:Custom Error Messages and `required_without_all` validation anomaly in Laravel 5.1Laravel 5.1 中的自定义错误消息和“required_without_all”验证异常
【发布时间】:2016-08-05 14:39:57
【问题描述】:

事实如下:

  • 我有一个包含许多字段的表单
  • 对于三个字段,我只需要填写其中一个
  • 我在这三个字段的自定义表单请求中设置了required_without_all:
  • 我已为我的必填字段修改了validation.php 中的:attribute
  • 有问题的表单字段在我的应用程序中是唯一的

以下是问题:

  • 当我在emerg_contact_home_phone字段中输入电话号码时,其他两个不显示错误,这是正确的。
  • 当我在 emerg_contact_work_phone 字段中输入电话号码时,emerg_contact_mobile_phone 显示错误。
  • 当我在 emerg_contact_mobile_phone 字段中输入电话号码时,emerg_contact_home_phoneemerg_contact_work_phone 都会显示错误。
  • 显示错误消息时,emerg_contact_mobile_phone 不会显示修改后的属性“手机”,而是显示“emerg_contact_mobile_phone”。

这是我尝试过的:

  • 我对所有位置的表单名称的拼写进行了三次检查。
  • 我坚信问题与 emerg_contact_mobile_phone 字段有关,因此我尝试将名称更改为不同的名称(即:'mobile_phone')

这是我的代码:

form.blade.php:

        <tr>
            <td class="col-md-4">
                {!! Form::label('emerg_contact_work_phone', '* Work Phone:', array('class' => 'control-label')) !!}
            </td>
            <td class="{{ $errors->has('emerg_contact_work_phone') ? 'has-error' : ''}}">
                {!! Form::text('emerg_contact_work_phone', null, array('class' => 'form-control')) !!}
                {!! $errors->first('emerg_contact_work_phone', '<span class="help-block">:message</span>') !!}
            </td>
        </tr>
        <tr>
            <td class="col-md-4">
                {!! Form::label('emerg_contact_home_phone', '* Home Phone:', array('class' => 'control-label')) !!}
            </td>
            <td class="{{ $errors->has('emerg_contact_home_phone') ? 'has-error' : ''}}">
                {!! Form::text('emerg_contact_home_phone', null, array('class' => 'form-control')) !!}
                {!! $errors->first('emerg_contact_home_phone', '<span class="help-block">:message</span>') !!}
            </td>
        </tr>
        <tr>
            <td class="col-md-4">
                {!! Form::label('emerg_contact_mobile_phone', '* Mobile Phone:', array('class' => 'control-label')) !!}
            </td>
            <td class="{{ $errors->has('emerg_contact_mobile_phone') ? 'has-error' : ''}}">
                {!! Form::text('emerg_contact_mobile_phone', null, array('class' => 'form-control')) !!}
                {!! $errors->first('emerg_contact_mobile_phone', '<span class="help-block">:message</span>') !!}
            </td>
        </tr>

验证.php:

'attributes' => [
    'givenname' => 'First Name',
    'surname' => 'Last Name',
    'email' => 'Email',
    'emerg_contact_relationship' => 'Relationship',
    'emerg_contact_givenname' => 'First Name',
    'emerg_contact_surname' => 'Last Name',
    'emerg_contact_work_phone' => 'Work Phone',
    'emerg_contact_home_phone' => 'Home Phone',
    'emerg_contact_mobile_phone' => 'Mobile Phone',
],

CustomFormRequest.php:

    public function rules()
{
    return [
        'givenname' => 'required',
        'surname' => 'required',
        'email' => 'required|email|unique:employees,email,' . $this->get('id'),
        'password' => 'required_with:is_user|min:6',
        'password_confirmation' => 'required_with:is_user|min:6|same:password',
        'aca_number' => 'unique:employees,aca_number,' . $this->get('id'),
        'license_number' => 'unique:employees,license_number,' . $this->get('id'),
        'base_location' => 'required',
        'emerg_contact_relationship' => 'required',
        'emerg_contact_givenname' => 'required',
        'emerg_contact_surname' => 'required',
        'emerg_contact_home_phone' => 'required_without_all:emerg_contact_work_phone, emerg_contact_mobile_phone',
        'emerg_contact_work_phone' => 'required_without_all:emerg_contact_home_phone, emerg_contact_mobile_phone',
        'emerg_contact_mobile_phone' => 'required_without_all:emerg_contact_home_phone, emerg_contact_work_phone',
    ];
}

【问题讨论】:

  • 只是尝试,去掉逗号和下一列之间的空格。 emerg_contact_work_phone,emerg_contact_mobile_phone
  • 圣洁的母亲...好收获!!最好将其作为答案提交:)
  • 哈!我实际上不确定是否是这种情况,但所有示例都不使用空格。
  • 我猜是坏习惯……编码不像写一句话

标签: php forms validation laravel-5.1


【解决方案1】:

各列应以逗号分隔,不带空格:

'emerg_contact_home_phone' => 'required_without_all:emerg_contact_work_phone,emerg_contact_mobile_phone',

【讨论】:

    猜你喜欢
    • 2015-10-02
    • 2020-02-26
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    • 2015-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多