有没有内置的方法来做这样的事情? 假设我有一个搜索页面,其中包含一些参数: example.com/search?term=footype=user 该页面上的链接将重定向到类型为链接的URL.我正在寻找一种方法来做到这
假设我有一个搜索页面,其中包含一些参数:
example.com/search?term=foo&type=user
该页面上的链接将重定向到类型为链接的URL.我正在寻找一种方法来做到这一点,而无需手动构建URL.
编辑:
我可以手动构建URL,如下所示:
$qs = http_build_query(array( 'term' => Input::get('term'), 'type' => Input::get('type') )); $url = URL::to('search?'.$qs);
但是,我想知道的是,如果在Laravel中有一个更好的,内置的方法,因为当我想要更改其中一个值时,代码变得更加混乱.
为URL生成器提供第二个参数($parameters)将它们作为段添加到URL,而不是在查询字符串中.
您可以使用URL Generator来完成此任务.假设搜索是命名路由:$queryToAdd = array('type' => 'user'); $currentQuery = Input::query(); // Merge our new query parameters into the current query string $query = array_merge($queryToAdd, $currentQuery); // Redirect to our route with the new query string return Redirect::route('search', $query);
Laravel将从传递的数组中取出位置参数(这似乎不适用于此场景),并将其余的作为查询字符串附加到生成的URL.
见:URLGenerator::route()
,URLGenerator::replaceRouteParameters()
URLGenerator::getRouteQueryString()