这是一个非常奇怪的问题,因为之前路由模型绑定从未遇到过任何问题。我有资源路线:
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
似乎有点奇怪,我不确定它是什么,想法?