У меня динамическое поле ввода называется name="step[]"
, При отправке формы и отображении $request->step
используя дд, я получаю это:
array:3 [
0 => "Test Step 1"1 => "Test Step 2"2 => "Test Step 3"]
Так что это массив. Теперь, когда я хочу вставить данные, используя:
$project = new Project;
$project->name = $request->name;
$project->save();
$project->steps()->saveMany($request->step);
Я получаю эту ошибку:
Argument 1 passed to Illuminate\Database\Eloquent\Relations\HasOneOrMany::save() must be an instance of Illuminate\Database\Eloquent\Model, string given
Модель проекта:
public function steps()
{
return $this->hasMany('App\Step');
}
Моя цель — создать новый Project
и сохранить его в базе данных, и сохранить все steps
в моем Step
Таблица. Таким образом, каждый проект имеет много шагов. Не уверен, почему я получаю вышеуказанную ошибку, так как я передаю массив?
Я обычно понимаю, используя цикл foreach. Ваш метод отношений, кажется, выглядит хорошо. Это работает?
foreach($request->steps as $step) {
$project->steps()->create(['step' => $step]);
}
Вы пытались использовать метод присоединения?
$project->steps()->attach($resquest->input('steps'));