laravel 5从关系中获取ID

时间:2015-09-03 15:02:59

标签: laravel laravel-5

我有一个项目模型,其中有

protected $table = 'projects';
protected $guarded = [];

public function docOne()
{
    return $this->hasOne('App\DocOne', 'id');
}

在Model DocOne中,我有

protected $table = 'doc_one';
protected $guarded = [];

public function project()
{
    return $this->belongsTo('App\Project', 'id');
}

所以这是一对一的关系。现在我有一个表单,它收集信息以填写doc_one表。在控制器中,我做

public function store(Request $request)
{
    $input = Input::all();
    DocOne::create( $input );

    return Redirect::route('projects.index')->with('message', 'Document saved');
}

此操作失败,因为数据库还需要项目ID。如何获取正在创建doc_one的项目的ID?

由于

1 个答案:

答案 0 :(得分:1)

要创建与项目相关联的文档,您的路径应如下所示:

Route::post('projects/{id}/doc_one', 'DocOneController@store');

然后您的控制器方法将是:

public function store(Request $request, $id)
{
    /**
     * Create DocOne
     */
}

$id是您的项目ID。