首页 > 解决方案 > 如何在 Laravel 7 中使用 select2 multiple 向 DB 插入多个值

问题描述

当我尝试将所有选定的值插入数据库时​​,我得到 [ 结果在driver_lisence列中。

这是我的刀片

<div class="form-group col-sm-6">

    <label>{{__('driver.driver_licence')}}</label>
    <select name="driver_lisence[]" class="form-control select multiple" id="" multiple="multiple">
        <option {{ old('driver_lisence') == 'A' ? 'selected': '' }}  value="A">A</option>
        <option {{ old('driver_lisence') == 'B' ? 'selected': '' }}  value="B">B</option>
        <option {{ old('driver_lisence') == 'C' ? 'selected': '' }}  value="C">C</option>
        <option {{ old('driver_lisence') == 'D' ? 'selected': '' }}  value="C">D</option>
        <option {{ old('driver_lisence') == 'E' ? 'selected': '' }}  value="E">E</option>
    </select>

    @error('driver_lisence')
        <label id="with_icon-error" class="validation-invalid-label" for="with_icon">
            {{$message}}
        </label>
    @enderror
</div>

这是我的模型

protected $fillable = [
    'firstname',
    'lastname',
    'birthday',
    'email',
    'phone',
    'password',
    'gender',
    'image',
    'pasport_id',
    'fin_code',
    'driver_lisence',
    'status',
    'fcm_token',
    'driver_group_id',
    'app_version',
];

protected $casts = [
    'driver_lisence' => 'array'
];

这是我的控制器

public function store(DriverRequest $request)
{
    $data = $request->all();

    if ($request->file('image'))
    {
        $data['image'] = request('image')->store('',['disk' => 'uploads']);;
    }

    $data['password'] = Hash::make($data['password']);

    Driver::create($data);

    return  redirect(route('admin.driver.index'))->with(_sessionmessage());
}

我只想选择所有值并插入到driver_licence数组之类的列中。

标签: phplaravel-7

解决方案


由我自己修复。问题出在我的迁移中。我插入了第 1 列。我删除了它,我可以工作


推荐阅读