我得到了一个足智多谋的路由错误,我无法理解..所以基本上在我的路由文件中这有效:
Route::get('siswa', 'SiswaCont@index');
Route::get('siswa/create', 'SiswaCont@create');
Route::post('siswa', 'SiswaCont@store');
Route::get('siswa/{id}', 'SiswaCont@show');
Route::get('siswa/{id}/edit', 'SiswaCont@edit');
Route::patch('siswa/{id}', 'SiswaCont@update');
Route::delete('siswa/{id}', 'SiswaCont@destroy');
但是当我把它改成单行资源时:
Route::resource('siswa', 'SiswaCont');
它在Handler.php第103行中产生NotFoundHttpException错误,没有模型[App \ Siswa]的查询结果。
任何人都知道如何解决这个问题?
答案 0 :(得分:2)
切换到资源控制器时,请不要忘记参数名称也会更改。
在您的情况下,新路由将是siswa/{siswa}
,而不是siswa/{id}
。
如果要保留结构,请使用以下示例:
Route::resource('siswa', 'SiswaCont', ['parameters' => [
'siswa' => 'id'
]]);
给定的代码将ResourceController的默认参数更改为另一个开发人员定义的值(在本例中为),该参数是您的控制器名称(在您的情况下为 siswa )的单一化版本。 ID )。
这将保持您当前的结构,因为参数现在是相同的,应该修复您的NotFoundHttp
异常。有关此代码示例的更多信息,请参见in the docs