私は私のデータベースにデータを保存していますが、私はこのエラーその他の関連質問を研究する引数1 ::パラメータ化()型の配列でなければなりませんが - Laravel
Type error: Argument 1 passed to >Illuminate\Database\Grammar::parameterize() must be of the type array, string given
を取得し、私はこの問題を解決しようとしましたが、まだ誰も私を助けてくれませんでした。以下は、私のコードは、作成方法は、単一のモデルを作成するためである
$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);
}
}
で
を交換してみてください。 $ dataが空であることを確認していますが、$データの出所をコードに表示していません。コードのどの行にエラーが表示されますか? –
ところで、あなたは学生オブジェクトを間違ってフェッチしています。 Student :: all()はデータベースからすべての生徒を取り出し、後でコレクションをフィルタリングします。あなたは$ student = Student :: findOrFail($ id)とすることができます。 –
@ jedrzej.kurylo、私の更新を見てください。 '$ student-> teachers() - > attach(\ App \ Teacher :: create($ dataArray) - > id);' – stackgirl