是否可以将以下行中的$ request-> all()替换为仅提交表单中不为空的字段。
$product = Product::create($request->all());
当某些表单字段为空时,生成的查询类似于
insert into `products` (`name`, `companyname`, `ip`, `host`, `status`, `language`, `updated_at`, `created_at`) values (efesar, ewrewrewre, , , , , 2018-04-18 10:29:11, 2018-04-18 10:29:11))
那就是错误。
答案 0 :(得分:2)
这将只为您提供值为
的字段$data = collect($request->all())->filter()->toArray();
$product = Product::create($data);
但是您应该仅从请求中获取适合您的产品模型的字段,或者更好,为它们添加验证。根据您的需要,您可能需要将某些表字段更改为可为空,以便能够保存空字段。
答案 1 :(得分:1)
提交空字段不是问题。只需在迁移文件中使它们可以为空:
$table->string('ip')->nullable();
$table->string('host')->nullable();
$table->string('status')->nullable();
$table->string('language')->nullable();