繁体   English   中英

Laravel表格有多个选择

[英]Laravel Form with multiple select

我有以下控制器,它将数据发送到Laravel Blade视图:

控制器:

public function create()
{
    $schools = School::all()->sortBy('school_type');
    return view('invoices.create')->with([
        'schools' => $schools,
        'dayTypes' => $dayTypes,
    ]);
}

在该Laravel刀片视图中,有一种形式:

<form method="GET" action="{{ route('invoices.choose-periods') }}">
    <div class="form-group {{ $errors->has('school') ? 'has-error' : '' }}">
        <label>School</label>
        <select id="school" class="form-control" name="school[]" multiple size="{{ $schools->count() }}" required>
            @foreach ($schools as $school)
                <option value="{{ $school->id }}">{{ $school->name }}</option>
            @endforeach
        </select>
        @if ($errors->has('school'))
            <span class="help-block">
                <strong>{{ $errors->first('school') }}</strong>
            </span>
        @endif
    </div>
        <button type="submit" class="btn btn-success btn-sm pull-right">Submit</button>
</form>

从HTML中可以看到,该表单是一个多选表单,其结果数据存储在school[]数组中。

提交表单后,我进行了一次测试,然后按request('school')转储request('school')然后看到对于我选择的每个选项,该值似乎已记录两次。 例如,仅选择一个选项就会给我:

array:2 [▼
  0 => "15"
  1 => "15"
]

有任何想法吗? 谢谢!

我只在laravel 5.7上工作。 试试这个它对我有用。 由于您要传递2个对象

return view('invoices.create')->with([
    'schools' => $schools,
    'dayTypes' => $dayTypes,
]);

很明显,您会收到2个错误。

在您的控制器中更改

public function create()
{
$schools = School::all()->sortBy('school_type');
return view('invoices.create')->with([
    'schools' => $schools,
    'dayTypes' => $dayTypes,
]);
}

对此

public function create(){
$schools = School::all()->sortBy('school_type');
return view('invoices.create', ['schools' => $schools]),
]);
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM