Laravel 5.7 使用某些命名空间的资源控制器路由名称是啥?
Posted
技术标签:
【中文标题】Laravel 5.7 使用某些命名空间的资源控制器路由名称是啥?【英文标题】:Laravel 5.7 what is the Resource Controller route names using some namespaces?Laravel 5.7 使用某些命名空间的资源控制器路由名称是什么? 【发布时间】:2019-07-16 09:23:31 【问题描述】:升级到 Laravel 5.7 后, 我在 Admin 中使用 route:resource 进行 CRUD 命名空间是Admin。 所以例如UsersController,create的路由名称是
route('admin.users.create')
但它在 Laravel 5.7 中对我不起作用。 我也不能使用命令
php artisan route:list
因为它在连接中显示错误,尽管我在 .env 文件中使用了正确的连接参数。
【问题讨论】:
去掉不必要的路由或者错误的路由然后运行php artisan route:list
你能显示路由列表的错误吗?
您是否在使用 vagrant box 或其他有您的项目以及 mysql 连接的东西,您是否在本地终端上触发了 artisan 命令(而不是在执行 vagrant ssh 之后)?
【参考方案1】:
命名空间不会更改路由名称,只会定义应用程序将在其中查找控制器的命名空间。
您应该将路由名称前缀 ->name('admin.')
添加到您的 admin
路由组。
【讨论】:
【参考方案2】:在 routes->web.php 中指定名称:name('admin.users.create');
like that.
Route::get('/user', 'UserController@create')->name('admin.users.create');
然后在你的控制器、视图或模型中使用它
route('admin.users.create')
.
【讨论】:
以上是关于Laravel 5.7 使用某些命名空间的资源控制器路由名称是啥?的主要内容,如果未能解决你的问题,请参考以下文章
laravel 5.7 引入IlluminateHttpRequest 在类内调用 Request 提示不存在的问题
需要更改 Laravel 控制器路径已在 serviceprovider 上设置命名空间为空
在命名空间中定义控制器仍然发生在 laravel 5.5 中的 Class App\Http\Controllers 错误