当前位置 : 主页 > 网页制作 > HTTP/TCP >

在Laravel中更改查询参数时重定向到当前URL

来源:互联网 收集:自由互联 发布时间:2021-06-16
有没有内置的方法来做这样的事情? 假设我有一个搜索页面,其中包含一些参数: 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()

网友评论