为啥 Laravel 中的新路线不起作用?

Posted

技术标签:

【中文标题】为啥 Laravel 中的新路线不起作用?【英文标题】:Why are new routes in Laravel not working?为什么 Laravel 中的新路线不起作用? 【发布时间】:2019-12-04 04:17:06 【问题描述】:

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

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

我今天尝试添加一条新路线,但出现 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');


);

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

【问题讨论】:

哪些路由不起作用,当您尝试访问该路由时它显示为 URL 的内容是什么? 到目前为止我添加的所有新路线都没有工作,但旧路线正在工作。 “/testing”是我刚刚添加的最新路线,但也不起作用 让我们先看看你的 pagescontroller,也许我们可以在那里找到线索。 php artisan route:clear,然后是php artisan route:list 大家好!我已经解决了这个问题。我不得不手动删除缓存文件。 【参考方案1】:

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

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');

);

【讨论】:

我已经能够解决这个问题。显然,引导文件夹中的缓存文件与路由中的 URI 冲突。 不。我刚刚从引导文件夹中手动删除了缓存和配置文件

以上是关于为啥 Laravel 中的新路线不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 快速入门指南路线不起作用

Laravel 路线根本不起作用

Laravel 5 条新路线不起作用

路线在 laravel 4.2 中不起作用

路线存在但不起作用,删除的路线仍然有效 Laravel

当我更改路线时,Laravel ajax 搜索不起作用