【问题标题】:How to set name in route group in laravel 5.5?如何在 laravel 5.5 的路由组中设置名称?
【发布时间】:2018-03-19 06:44:36
【问题描述】:

我在我的项目中使用this 包,并且有默认包routes

像这样:

我想在我的控制器中使用这条路线。我正在尝试与 name 一起使用,但它没有以这种方式工作。

Route::group(['prefix' => 'admin', 'as' => 'admin.'], function () {
    Voyager::routes();
});

And 

Route::group(['prefix' => 'admin'], function () {
    Voyager::routes();
})->name('admin');

我正在尝试这样使用:

我想像这样授予访问权限,就好像我正在尝试访问“管理员”路由然后我可以访问这些路由组下的所有路由。我不知道该怎么做?

请帮帮我。

【问题讨论】:

  • “但没用”是什么意思?请阅读:stackoverflow.com/help/mcve
  • php artisan route:list 告诉你什么剂量
  • 感谢您重播,以“as”=>“admin”的方式显示所有路线列表。在我的问题中,第一种方式。像这样 (prntscr.com/guhhm7)
  • 您为什么提供屏幕截图而不是复制/粘贴的实际文本?我们应该如何处理难以阅读的低对比度半透明路线:列表截图?
  • 列表中有很多路线,这就是为什么我要提供图像并对这个错误感到抱歉。我正在为路线 (gist.github.com/themeyellow/50e9cc48563385e2129c3029c3a53860) 创建一个要点,并感谢您的建议 :)

标签: php laravel routes laravel-routing laravel-5.5


【解决方案1】:

您不能重定向到名称为 admin. 的路由,因为这样的路由不存在。

使用时:

Route::group(['prefix' => 'admin', 'as' => 'admin.'], function () {
    Voyager::routes();
});

这意味着Voager::routes()创建的所有路由的名称都以admin.开头,但这并不意味着admin.路由存在。

所以我认为你应该改用admin.voyager.dashboard,所以你应该改用:

return redirect()->route('admin.voyager.dashboard');

代替:

return redirect()->route('admin.');

【讨论】:

  • 嗨,Marcin,非常感谢您的回答。我按照你的步骤 'elseif ($this->setCompany == 'admin') { return redirect()->route('admin.voyager.dashboard'); }' 并显示此错误(InvalidArgumentException Route [admin.voyager.dashboard] 未定义。)
  • 查看您提供的屏幕prnt.sc/guhhm7 或此文件gist.github.com/themeyellow/50e9cc48563385e2129c3029c3a53860 已定义。确保粘贴后没有将其删除。并确保运行php artisan route:list。另外我不知道你的中间件到底是什么 - 你也可能因为你的中间件而得到 404
  • 感谢您的重播,这里是更新路线列表'gist.github.com/themeyellow/50e9cc48563385e2129c3029c3a53860'。如果有任何中间件问题,我将如何发现?请清楚地告诉我。
猜你喜欢
  • 2018-07-05
  • 2021-12-16
  • 2018-03-21
  • 2022-11-26
  • 2018-04-30
  • 2016-08-18
  • 1970-01-01
  • 1970-01-01
  • 2018-08-05
相关资源
最近更新 更多