我将数据保存到我的数据库中,但是我收到此错误
类型错误:参数1传递给> Illuminate \ Database \ Grammar :: parameterize()必须是数组类型,给定字符串
研究其他相关问题,我试图解决这个问题,但他们都没有帮助过我。以下是我的代码
$student = Student::findOrFail($id)
if($request->file('imported-file'))
{
$path = $request->file('imported-file')->getRealPath();
$data = Excel::load($path, function($reader)
{
})->get();
if(!empty($data) && $data->count())
{
foreach ($data->toArray() as $row)
{
if(!empty($row))
{
$dataArray[] =
[
'name' => $row['name'],
'grade' => $row['grade'],
'age' => $row['age'],
'parent' => $row['parent'],
];
}
}
if(!empty($dataArray))
{
$student->teachers()->attach(\App\Teacher::create($dataArray)->id);
}
}
答案 0 :(得分:0)
create方法用于创建单个模型。它需要一个' field'的关联数组。 => '值&#39 ;.您正在向它传递一些嵌套数组。
Model::create(['field' => 'value', 'anotherfield' => 'anothervalue']);
您必须单独创建每个Teacher
模型。
答案 1 :(得分:0)
尝试替换
$student->teachers()->attach(\App\Teacher::create($dataArray)->id);
与
$student->teachers()->createMany($dataArray);