函数 PendingResourceRegistration::name(),1 的参数太少

Too few arguments to function Illuminate\Routing\PendingResourceRegistration::name(), 

1 passed in C:\xampp\htdocs\project\routes\web.php on line 18

and exactly 2 expected.

我在 laravel 上尝试了 Klorofil 模板,但它的工作很完美。我不知道为什么,但我好几次都没有打开 laravel 和 php。当我再次打开这个项目时,这正在发生。我只记得也许我更改了路由或控制器,因为我想在没有刷新和错误的情况下使用 ajax,而我忘记像以前一样更改。但是什么时候再次搜索这个模板可能不是我的错...或者php有更新。


网页.php


Route::get('/', function () {

    return view('main');

});



Route::resource('siswa', 'SiswaController')->name('siswa');

Route::get('/login','AuthController@login')->name('login');

Route::post('/postlogin', 'AuthController@postlogin');

Route::get('/logout','AuthController@logout');



Route::get('/dashboard', 'DashboardController@index')->middleware('auth');

Route::get('siswa.index', 'SiswaController@index')->middleware('auth');

Route::post('siswa.index/import', 'SiswaController@import')->middleware('auth')


慕田峪7331174
浏览 215回答 3
3回答

侃侃尔雅

解决方案是将您的路线更改为:Route::resource('siswa', 'SiswaController')->name('*', 'siswa')这可能来得很晚,但我刚刚遇到了同样的错误。发生错误是因为当我们使用时Route::resource,Laravel 需要 2 个参数而不是 1 个。例如,在您的:Route::resource('siswa', 'SiswaController')->name('siswa')你只定义了名字。因此,Laravel 为您定义了路线 'siswa'。但是因为你在使用Route::resource,里面定义了很多路由,比如create、edit、delete等等。所以 Laravel 需要将路由定义为“siswa.create”、“siswa.delete”等。自然地,我们不能期望列出所有的方法,所以加上 * 有助于 Laravel 理解它应该创建命名路由为 siswa.* 并且 * 代表所有不同的方法(例如创建、编辑、删除和很快)。希望这有帮助!
打开App,查看更多内容
随时随地看视频慕课网APP