Laravel 4.2 - 在返回视图

时间:2015-05-24 10:24:44

标签: php laravel laravel-4 query-string

我有一个显示产品列表的页面。每个产品属于一个部分,该部分具有各种子部分,这些部分具有各种类别,并且反过来具有各种子类别。我使用这些属性来过滤产品,并且只有在提交前一个产品时才会出现这些属性(仅当定义了部分时才显示子部分,并且仅显示属于该特定部分的子部分)。我正在使用查询字符串来制作我的过滤器,如下所示:

http://www.website.com/products?section=21&subsection=57&category=92

当用户在页面中选择过滤器时,这很有效。首先选择一个部分,然后使用子部分重新加载页面。然后他选择一个子部分,页面重新加载子类别,依此类推。

我的问题是:我希望它以某种方式工作,例如,如果我取消选择该部分,它将返回没有查询字符串的视图,或者至少将其他值清空。目前它返回如下:

http://www.website.com/products?section=&subsection=57&category=92

我已尝试仅使用预定义的输入返回视图,例如剖面,以防小部分未定义:

if(isset($filter['subsection']) && $filter['subsection'] != '') {
        $category = new ProductCategory;
        $categories = $category->where('subsection', '=', $filter['subsection'])->lists('name', 'id');
        $view = $view->with('categories', $categories);
    }
    else {
        return $view->with(Input::except('subsection','category','subcategory'));
    }

这会进入else块,但URL仍会获取所有查询字符串及其先前的值。我也试过Input::only,但结果相同。

我应该采用另一种方式,也许是POST吗?是否有方法在使用withInput()发回之前清除输入?感谢。

0 个答案:

没有答案