单击页面2的链接后,Laravel分页重定向到本国路线

时间:2018-11-15 13:36:23

标签: php laravel laravel-5.6 laravel-pagination

我的Laravel分页无法正常工作。当我尝试在laravel分页中单击第二个链接或单击另一个链接而不是第一个链接时,它会将我重定向到主URL(localhost:8000)。

Laravel分页链接正在重定向到相同的路由,但带有“ page =”参数,但是问题是在此路由上,我具有带有if语句的控制器,该语句将我重定向到主页。如何将分页结果发送到另一条路线并正确显示每个分页,而不会受到控制器的影响。

这是控制者:

    $per_page = 5; //default

    //Za ispis kategorija i tagova u filteru
    $filter_categories = Category::all();
    $filter_tags = Tag::all();


    if($request->per_page){ $per_page = $request->per_page; }


    //Ako ne postoji zahtjev za kategorijama i tagovima
    if(!$request->category && !$request->tags) {

        //Provjera da li postoji zahtjev za broj jela po stranici
        if(only_meals_per_page($request)){

            $meals = Meal::paginate($per_page);

            return view('index', compact('meals', 'filter_categories', 'filter_tags'));
        }

        //Ako ne postoji nikakvi zahtjev vrati se na početak
        return redirect('/');

    //Zahtjev za kategorijom
    } else if($request->category && !$request->tags) {

        $result = filter_meals_by_category($request->category, $per_page);

    //Zahtjev za tagovima
    } else if(!$request->category && $request->tags) {

        $result = filter_meals_by_tags($request->tags, $per_page);

    //Zahtjev za kategorijama i tagovima
    } else {

        $result = filter_meals_by_categories_and_tags($request->category, $request->tags, $per_page);

    }

    $meals = $result['meals'];
    $message = $result['message'];

    Session::flash('message', $message);
    return view('index', compact('meals', 'filter_categories', 'filter_tags'));

..以及带有分页方法的$ result数组的示例

$meals = Meal::where('category_id','=', NULL)->paginate($per_page);

我知道问题可能出在第一个if语句中,因为我已经不再有任何类别和标签了。

1 个答案:

答案 0 :(得分:0)

通过在分页链接中附加get请求的查询字符串解决的问题:

$meals->appends(request()->input())->links()