【问题标题】:Laravel multiple select array validation always give errorLaravel 多选数组验证总是报错
【发布时间】:2019-06-06 21:03:04
【问题描述】:

我在我的表单中使用多项选择,面临表单验证问题,我使用多项选择字段名称作为数组,如果我为验证规则提供相同的名称,它的工作效果很好,但在选定的选项上也会出现验证错误。这是我的 html 代码和验证规则。

<select multiple="multiple" name="skills[]" class="form-control">

验证规则

'skills[]' => 'required'

如果我使用没有 [] 或技能的字段名称。* 验证不适用于该字段,请指导我哪里做错了。我正在为我的项目使用 laravel 5.7。

【问题讨论】:

  • 你必须在没有[]的情况下使用它
  • 你好顺便说一句:P 一起在 SAE 学习,哈哈:D
  • @emotality 是的,我记得你
  • @devk 我必须在验证规则中不使用 [] 吗?

标签: laravel laravel-5


【解决方案1】:

如果您的select 看起来像这样:

<div class="form-group row">
    <label for="skills" class="col-md-4 col-form-label text-md-right">Skills</label>
    <div class="col-md-6">
        <select multiple name="skills[]" id="skills" class="form-control{{ $errors->has('skills') ? ' is-invalid' : '' }}" required>
            <option value="ios">iOS</option>
            <option value="php">PHP</option>
            <option value="laravel">Laravel</option>
        </select>
        @if($errors->has('skills'))
            <span class="invalid-feedback" role="alert">
                <strong>{{ $errors->first('skills') }}</strong>
            </span>
        @endif
    </div>
</div>

创建自定义请求:

$ php artisan make:request ExampleRequest

ExampleRequest 验证如下所示:

public function authorize()
{
    return true;
}

public function rules()
{
    return [
        'skills' => 'required|array',
    ];
}

然后直接从您的$request 中获取经过验证的数据

public function submitForm(ExampleRequest $request)
{
    // at this point, validation already passed
    // if validation failed, you would be back at form with errors
    $skills = request('skills');
    // or
    $skills = $request->skills;

    dd($skills);
}

自定义请求在点击您的控制器方法之前首先得到验证。

【讨论】:

  • 为什么required 需要form-control
  • 是的,它使用新请求创建了一个新项目,运行了所有场景,并且 100% 运行。 :) 显示你的整个验证也许你做错了什么?
  • 更新了答案。 :)
  • 是的,它工作正常,在我的表单生成器中出现错误,我使用带有 [] 的字段名称,这就是它现在显示错误的原因。感谢您的帮助
  • 没问题,好好养! :)
猜你喜欢
  • 1970-01-01
  • 2018-12-23
  • 1970-01-01
  • 2014-09-13
  • 1970-01-01
  • 2017-08-29
  • 2017-08-09
  • 2020-08-06
  • 2018-02-24
相关资源
最近更新 更多