【发布时间】:2021-07-26 04:10:35
【问题描述】:
我在使用 Maatwebsite/excel 导入创建数据时遇到问题。在我的导入类中,我想使用关系创建数据,当我尝试包含子数据的 dd 变量时,它的工作正常,但是当我 saveMany() 时,数据返回 null 和错误。
违反完整性约束:1048 列“描述”不能为空
这是我的代码:
public function collection(Collection $rows) {
$parent = Parent::create([
'name' => $this->name,
'slug' => $this->slug,
'month' => $this->month,
]);
foreach ($rows as $row) {
$item = new Child([
'description' => $row['description'],
'status' => $row['status'],
]);
$items[] = $item;
}
$parent->childs()->saveMany($items);
}
【问题讨论】:
-
如果将 dd($rows) 输出添加到问题中会更好。根据错误描述在任何一行中为空
-
那太好了!如果您可以共享表结构或子关系方法信息。您的子记录中可能缺少关系键。
-
将
if ($row['description'] == null) {dd(true)}添加到foreach ($rows as $row) {。循环结束还是你得到 dd()? -
感谢您对我的问题提出建议。我已经通过使用实现 toModel 解决了我的问题。
标签: php laravel eloquent laravel-excel