Laravel如何更改查询字符串url值?

时间:2016-06-27 16:44:00

标签: php forms laravel url pagination

我有一个搜索过滤器,其中包含最小和最大价格(货币转换器)的值,我想在同一页面上更改货币的价值,当我在价格输入不会改变时运行它我已经用分页链接更改了页面。

我在视图上附加这样的价格(来自控制器的$ max_price):

 {!! Form::text('max_price',(int)$max_price,array('class'=>'sliderValue')) !!}

查询网址字符串:

   www.example.com/items?search=min_price=0&max_price=1814

   $items->setPath('items');
   $items->appends(['search' => $input['search'], 'min_price' =>      
   $min_price, 'max_price' => $max_price]);

使用$ request-> replace($ requestArray)

解决了这个问题

1 个答案:

答案 0 :(得分:0)

我无法使用replace()解析它,因为当我从$request->get('search')获取值时,它返回了来自queryString的原始值...

我做了什么:

use Symfony\Component\HttpFoundation\ParameterBag;

$oldQueryString = $this->request->query->all(); // To not lose other params
$params = [
    'search' => $input['search'], 
    'min_price' => min_price, 
    'max_price' => $max_price
];
// Merge other params to the new ones
$newQueryString = array_merge($oldQueryString, $params);
$request->query = new ParameterBag($newQueryString);

现在,当我使用$request->get('search')时,它会返回新值。