为啥 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 中的新路线不起作用?的主要内容,如果未能解决你的问题,请参考以下文章