【发布时间】:2020-04-08 10:26:19
【问题描述】:
嗨,我需要在表中插入一个数组,但我不知道该怎么做 我正在使用 select2 插件选择多个值作为标签并将它们作为数组插入数据库 输入看起来像这样
<select name="designation[]" class="form-control" multiple="multiple" id="select2"></select>
//script
$('#select2').select2({
tags: true,
tokenSeparators: [',', ' '],
selectOnClose: true
});
事件控制器
public function store(Request $request){
$validator = $request->validate([
'theme' => ['required','unique:events,theme'],
]);
$event = Event::create($request->except('designation'));
$event->montant()->insert($request->get('designation'));
return redirect()->to(route('admin.event.index'))
->withFlashSuccess('L\'éventment a bien etait ajouté');
}
当我提交表单时使用此代码出现此错误
SQLSTATE [42S22]:未找到列:1054“字段列表”中的未知列“0”(SQL:插入event_montants(0,1)值(222、111))
event_montant 迁移
public function up()
{
Schema::create('event_montants', function (Blueprint $table) {
$table->increments('id');
$table->bigInteger('designation');
$table->unsignedInteger('event_id');
$table->foreign('event_id')->references('id')->on('events')
->onDelete('cascade');
$table->timestamps();
});
}
请帮我解决这个问题
【问题讨论】:
-
insert期待一个关联数组,其中键是字段名称,您传递的是一个零索引数组,因此它认为您的字段被命名为 0 和 1 ...不确定您是哪个字段正在尝试保存或为什么要尝试将数组放在单个字段中 -
是的,我知道,但是如何将键名从 0 和 1 更改为“指定”?或将此数组转换为关联数组,因为当我调试 $request->get('designation') 它给了我这个数组:2 [▼ 0 => "222" 1 => "111" ] 对不起我的英语
标签: arrays laravel eloquent tags jquery-select2