Laravel中生成带user_key参数的URL报错,如何解决?
解决Laravel生成带查询参数URL的问题
嘿,我来帮你搞定这个问题~你现在遇到的错误,是因为把查询参数?user_key=123456直接拼到了路由名称后面,但Laravel的route()函数不认这种写法,它会把整个overview-schedule?user_key=123456当成路由名称去查找,自然找不到啦。
正确的写法有两种:
1. 静态参数直接传数组
把Blade里的链接改成这样:
<a href="{{ route('overview-schedule', ['user_key' => 123456]) }}">查看日程概览</a>
Laravel会自动把数组里的键值对转换成查询字符串,生成的URL就是你想要的example.com/overview-schedule?user_key=123456。
2. 动态参数(比如从模型取)
如果user_key是动态的(比如来自用户实例),直接传变量就行:
<a href="{{ route('overview-schedule', ['user_key' => $user->unique_key]) }}">查看日程概览</a>
额外说明:
你在web.php里的路由定义完全没问题,不需要修改:
Route::any('overview-schedule', 'Front\PlanController@scheduleOverview')->name('overview-schedule');
查询参数不需要在路由里提前定义,Laravel会自动处理它们。之后你在scheduleOverview方法里,可以这样获取这个参数:
// 两种写法都可以 $userKey = request()->get('user_key'); // 或者更简洁的 $userKey = request()->user_key;
记住哦:route()函数的第一个参数只是路由名称,查询参数要单独通过第二个数组参数传递,别混在一起~
内容的提问来源于stack exchange,提问作者Javed
相关产品推荐
相关产品推荐

