0

我有一个名为name="step[]". 提交表单并显示$request->step使用 dd 时,我得到以下信息:

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表中。所以每个Project都有很多步骤。不知道为什么我会收到上述错误,因为我正在传递一个数组?

4

2 回答 2

1

我通常意识到使用 foreach 循环。你的关系方法看起来不错。这行得通吗?

foreach($request->steps as $step) {
  $project->steps()->create(['step' => $step]);
}
于 2016-02-23T15:44:05.947 回答
0

您是否尝试使用附加方法?

$project->steps()->attach($resquest->input('steps'));
于 2016-02-23T15:44:14.223 回答