首页 > 解决方案 > 为什么 Laravel 中的新路线不起作用?

问题描述

我已经在我的这个项目上工作了一段时间,直到今天我的路线都没有问题。

我什至尝试过清除缓存和转储自动加载。似乎没有任何工作。

我今天尝试添加一条新路线,但出现 404 错误。我也用过“get”和“any”,都无济于事。

起初,我尝试创建几条新路线,但仍然遇到相同的 404 错误。下面是我的 web.php 的一部分的样子。

Route::group(['middleware' => ['auth', 'role:teacher']], function () {
    Route::any('/testing', 'PagesController@testing');


    Route::resource('/attendance', 'AttendanceController');
    Route::get('/teacher/dashboard', 'TeachersController@dashboard')->name('teacher.dashboard');
    Route::resource('homework', 'HomeworkController');
    Route::resource('/teacher/events', 'EventsController',['names' => 
    'teacher.events']);
    Route::any('/view_students', 'StudentsController@myStudents')->name('view.students');
    Route::resource('results', 'CoursesResultController');
    Route::get('/results/class_course/{id}', 'CoursesResultController@showCourseResult');
    Route::post('/results/class_course/{id}', 'CoursesResultController@saveCourseResult');


});

编辑:我已经解决了这个问题。我不得不手动删除引导文件夹中的缓存文件。多谢你们。

标签: phplaravel

解决方案


将您的代码替换为以下内容:

Route::resource()为您生成所有可能的路线,因此应保留为最后一个可能的点。

Route::group(['middleware' => ['auth', 'role:teacher']], function () {
    Route::any('/testing', 'PagesController@testing');


    Route::resource('/attendance', 'AttendanceController');
    Route::get('/teacher/dashboard', 'TeachersController@dashboard')->name('teacher.dashboard');
    Route::resource('homework', 'HomeworkController');
    Route::resource('/teacher/events', 'EventsController',['names' => 
    'teacher.events']);
    Route::any('/view_students', 'StudentsController@myStudents')->name('view.students');

    /* changes over here
       `Route::resource()` generates all the possible routes for you, hence should be kept as the last possible point.
    */
    Route::get('/results/class_course/{id}', 'CoursesResultController@showCourseResult');
    Route::post('/results/class_course/{id}', 'CoursesResultController@saveCourseResult');
    Route::resource('results', 'CoursesResultController');

});

推荐阅读