Laravel隐式模型绑定命名约定?

时间:2019-02-28 23:31:57

标签: php laravel laravel-5

我在控制器动作上使用了隐式模型绑定,但是我有一个名为VerifiedDocument的模型,无论我输入的是什么模型名称,似乎都无法将其加载到动作中,但是如果我这样做:

    Route::bind('verificationDocument', function ($value) {
        return VerificationDocument::where('id', $value)->first() ?? abort(404);
    });

有效。

Laravel对隐式模型绑定使用什么命名约定?

1 个答案:

答案 0 :(得分:4)

IIRC隐式绑定的命名约定位于参数名称和类型提示的变量名称之间,即:

// Route declaration
Route::get('verificationdocuments/{verification_document}', YourController@show);

// Controller Action
public function show(VerificationDocument $verification_document)

// or without controller
Route::get('documents/{document}', function (VerificationDocument $document) {
    return $document->title;
});

请注意,{verification_document} => $verification_document{document} => $document