Laravel资源丰富的路线错误

时间:2016-11-15 09:19:05

标签: php laravel routes

我得到了一个足智多谋的路由错误,我无法理解..所以基本上在我的路由文件中这有效:

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]的查询结果。

任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

切换到资源控制器时,请不要忘记参数名称也会更改

在您的情况下,新路由将是siswa/{siswa},而不是siswa/{id}

如果要保留结构,请使用以下示例:

Route::resource('siswa', 'SiswaCont', ['parameters' => [
    'siswa' => 'id'
]]);

给定的代码将ResourceController的默认参数更改为另一个开发人员定义的值(在本例中为),该参数是您的控制器名称(在您的情况下为 siswa )的单一化版本。 ID )。

这将保持您当前的结构,因为参数现在是相同的,应该修复您的NotFoundHttp异常。有关此代码示例的更多信息,请参见in the docs