Laravel 5 动态输入字段保存与数据库的关系

Laravel 5 dynamic input fields saving relation to database

我有一个名为 name="step[]" 的动态输入字段。使用 dd 提交表单并显示 $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保存在我的Steptable中。所以每个Project都有很多步骤。不知道为什么我会收到上述错误,因为我正在传递一个数组?

我通常使用foreach 循环实现。您的关系方法看起来不错。这个有用吗?

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

您尝试过使用附加方法吗?

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