Laravel框架运行时ErrorException thrown with message "Route [register] not defined. 的解决办法
目录
一、问题复现:
1、背景介绍
从GitHub上导入了一个微信小程序源码(项目地址待填写),中间件为Laravel5.6,在自己的电脑上下载好composer后,将项目中的Laravel通过composer update命令更新了扩展包。
2、出现过程
首先打开cmd,通过cd命令进入项目文件地址(如D:\Users\abc\wechat开发\schoolrun,输入php artisan serve
启动路由,出现如下界面
在浏览器中输入http://127.0.0.1:8000/
,出现错误界面
在项目文件根目录中寻找文件.env
,或者将.env.example
文件的.example如果没有的话则新建一个文件并命名为.env
,将以下代码复制进去
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:bdjN3OcNdR16ozsEztXDu21JUJlpr4HNH+K3ura2jz4=
APP_DEBUG=false
APP_LOG_LEVEL=debug
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=papershop
DB_USERNAME=root
DB_PASSWORD=root
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
二、解决方法:
打开.......\wechat开发\abc\routes\web.php
在文件末尾加入以下代码
Route::get('/register', 'SomeController@method')->name('register');
保存后重启路由,即可看到成功界面
国外StackOverflow的大神的解决办法
Route()
helper only works with named routes. For example a named route is like
Route::get('/hello, 'HelloController@hello)->name('hey');
then you can use it like route('hey')
So, in your case
Route::get('/register', 'SomeController@method')->name('register');
For more info: https://laravel.com/docs/5.8/routing#named-routes
三、出现原因:
将APP_DEBUG=false
改为APP_DEBUG=true
,在cmd中按ctrl+c
结束路由再重新启动路由,进入http://127.0.0.1:8000/
看到如下界面,
通过提示定位到问题在......\wechat开发\abc\resources\views\welcome.blade.php
中的
即该route未在route.php中注册。