Laravel 5.6路径模型绑定表现奇怪

时间:2018-03-17 05:38:33

标签: php laravel laravel-5.6

这是一个非常奇怪的问题,因为之前路由模型绑定从未遇到过任何问题。我有资源路线:

Route::resource('metadata','MetadataController');

我的MetadataController索引方法中有一个重定向,当有人点击链接时会被触发。

return redirect()->route('metadata.edit', 1);

在我的RouteServiceProvider.php文件中,我有以下内容:

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

    Route::model('metadata', \App\Models\Metadata::class);
    Route::model('settings', \App\Models\Settings::class);
}

请注意,我的设置Route / Controller具有相同的设置,并且工作正常。

在我的编辑方法中,我有以下内容:

public function edit(Metadata $metadata)
{
    dd($metadata); // Never reaches here
}

有人可以向我解释为什么这条路线没有正确绑定吗? (或根本)

附加说明:

如果我将RouteServiceProvider中的路径绑定和Metadata方法中的类型转换移至edit,则会调用edit方法。

这两行都很好用:

 Route::model('settings', \App\Models\Settings::class);
 Route::model('settings', App\Models\Settings::class);

此行不会抛出错误,但会向我显示未找到页面的消息:

 Route::model('metadata', \App\Models\Metadata::class);

此行引发错误:

 Route::model('metadata', App\Models\Metadata::class);

Class App\Providers\App\Models\Metadata does not exist

似乎有点奇怪,我不确定它是什么,想法?

0 个答案:

没有答案