控制器方法中的Laravel依赖注入失败

时间:2018-06-02 18:55:04

标签: php laravel dependency-injection

我有一个名为 Dbtable 的模型,在使用时不会注入:

public function showEditDbTableForm(Request $request, DbTable $table) 
{

}

它只在我这样做时才有效:

public function showEditDbTableForm(Request $request, $id)
{
    $table = DbTable::find( $id );
}

即使我将DbTable重命名为DbTble

,也会发生同样的事情

P.S。:请不要对我粗鲁,因为我是Laravel框架的新手

2 个答案:

答案 0 :(得分:2)

对于隐式路径模型绑定,您需要确保方法签名中的参数与要绑定的路由参数具有相同的名称。

Route::get('widgets/{widget}', 'WidgetsController@show');

public function show(Widget $widget)

Laravel自动解析路径或控制器操作中定义的Eloquent模型,其类型提示的变量名称与路径段名称匹配。

Laravel 5.6 Docs - Routing - Implicit Model Binding

答案 1 :(得分:1)

在RouteServiceProvider类中添加

public function boot()
{
    parent::boot();

    Route::model('db-table', App\DbTable::class);
    // db-table correspond your rout parameter
}

请参阅官方文档https://laravel.com/docs/5.5/routing 明确绑定部分