-2

我的 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 语句中,它将我重定向到家,因为请求中不再有类别和标签。

4

1 回答 1

0

在分页链接中附加获取请求的查询字符串时解决的问题:

$meals->appends(request()->input())->links()
于 2018-11-15T15:54:41.980 回答