【问题标题】:multiple select field - select field must be an array and just one <option> is shown in the $request output多个选择字段 - 选择字段必须是一个数组,并且 $request 输出中只显示一个 <option>
【发布时间】:2018-02-16 23:38:21
【问题描述】:

我有下面的代码,它是创建新会议的过程的简历。要创建一个新会议,用户需要介绍一些信息,例如会议名称等。用户还需要为会议介绍 1 到 3 个类别。

所以有一个使用 select2 插件的选择元素,因此用户可以选择类别:

<div class="form-row">
    <div class="form-group col-lg-6">
        <label for="categories">Category</label>
        <select id="tag_list" required  multiple class="form-control" value="{{ old('categories') }}" name="categories" id="categories">
            @foreach($categories as $category)
                <option value="{{$category->id}}">{{$category->name}}</option>
            @endforeach
        </select>
    </div>
</div>

然后是 laravel 代码,用于存储会议信息以及会议类别在 Conference_category 表中,因为会议和类别之间存在多对多关系:

public function store(Request $request)
    {
        $this->validate($request, [
            'conference_name' => 'required|max:255|string',
            'conference_categories' => 'required|array|between:1,3|integer',
        ]);

        $conference = Conference::create([
            'name' => $request->conference_name,
        ]);

        $conference->categories()->attach($request->conference_categories);
    }

select2 JS:

$(function() {
    $('#tag_list').select2({
        placeholder: '',
        dropdownAutoWidth: 'true',
        width: '100%'
    });
});

错误

  • 如果用户在 $request 输出中选择了多个类别,则仅显示一个类别的 id
  • 提交表单后出现laravel验证错误“会议类别必须是数组。 "

你知道问题出在哪里吗?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您必须将 selectname 属性更改为数组,就像这样,并从中删除一个 id 属性,它不能有 2 个

    <select required  multiple class="form-control" value="{{ old('categories') }}" name="categories[]" id="categories">
    

    【讨论】:

    • 谢谢。现在出现其他错误:“htmlspecialchars() 期望参数 1 是字符串,给定数组。”你知道为什么吗?
    • 尝试从select 中删除value 属性
    • 删除出现laravel验证错误“会议类别必须是整数。”
    • 'categories' =&gt; 'required|array' 而不是 conference_categories
    • 谢谢,但我遇到了同样的问题。如果我改为 "value="{{ old('conference_categories') }}"" "value="{!! old('conference_categories') !!}"" 出现:数组到字符串转换错误。
    猜你喜欢
    • 1970-01-01
    • 2014-10-28
    • 2019-10-02
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    相关资源
    最近更新 更多