Laravel 9中链接跳转至route('welcome')而非根路径问题求助
Laravel 9路由跳转异常:route()函数被当作字符串传递导致错误路径
问题重现
在Laravel 9项目中:
web.php里定义了命名为welcome的根路由- 通过
AppServiceProvider向导航组件传递菜单数据时,href字段赋值为字符串"route('welcome')" - 视图循环渲染链接后,点击Home链接会跳转到
http://127.0.0.1:8000/route('welcome'),而非预期的根路径http://127.0.0.1:8000/ - 已执行
php artisan route:clear、php artisan cache:clear、php artisan view:clear命令,问题未解决,此前功能曾正常运行1-2小时
问题根源
传递菜单数据时,将route('welcome')作为字符串字面量传递,而非调用Laravel的路由辅助函数生成实际URL,导致视图直接输出该字符串,没有触发路由解析逻辑。
解决方案
修改AppServiceProvider中传递菜单数据的代码,把字符串形式的"route('welcome')"替换为实际调用route()函数:
错误代码
// 错误:传递的是字符串,不会触发路由解析 $menuItems = [ ['text' => 'Home', 'href' => "route('welcome')"], // 其他菜单项... ];
正确代码
// 正确:调用route()函数生成真实URL $menuItems = [ ['text' => 'Home', 'href' => route('welcome')], // 其他菜单项... ];
修改后,视图渲染时会直接使用解析后的根路径,点击链接即可正常跳转至预期地址。
内容的提问来源于stack exchange,提问作者Nel.naji
相关产品推荐
相关产品推荐

