Динамические поля ввода Laravel 5, сохраняющие отношение к базе данных

У меня динамическое поле ввода называется 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 Таблица. Таким образом, каждый проект имеет много шагов. Не уверен, почему я получаю вышеуказанную ошибку, так как я передаю массив?

0

Решение

Я обычно понимаю, используя цикл foreach. Ваш метод отношений, кажется, выглядит хорошо. Это работает?

foreach($request->steps as $step) {
$project->steps()->create(['step' => $step]);
}
1

Другие решения

Вы пытались использовать метод присоединения?

$project->steps()->attach($resquest->input('steps'));
0

По вопросам рекламы [email protected]