如果某些条件适用,则删除 Laravel URL 的一部分

Removing part of a Laravel URL if certain conditions apply

我的网站上有许多使用自定义分页解决方案的路由,例如 /categories/{category}/page/{page?}。我目前将每个控制器设置如下:

public function index($category, $page = null) {
    if(!isset($page) || !is_numeric($page) || $page < 1) {
        return redirect()->route('parent', ['category' => $category]);
    }
}

这具有检查提供的页码是否存在、确实是一个数字以及它是否大于零的预期效果。如果这些条件中的任何一个为假,它将重定向到父路由 /categories/{category}.

问题是,对于这些解决方案中的每一个,它们都要求我以父路由的名称编写以进行重定向。如果我只想切断 /page/ 及以后的 但保留所有 get 变量和 post 变量,我该怎么做?

如果您尝试使用输入重定向回上一页,请使用以下代码。

return redirect()->back()->withInput();

在上述情况下,只有当您从 /categories/{category}

来到 url /categories/{category}/page/{page?} 时,它才会起作用