Return 到上一页 - Laravel 8 项目

Return To Previous Page - Laravel 8 Project

我有一个使用分页器查看类别的仪表板,因此我的 url 通常看起来像:http://127.0.0.1:8000/categories?page=1 在我的 category.view 页面上。

当我点击 Edit 时,它会将我带到类别编辑页面。

在这个页面上我有一个 go back to categories 按钮。

如果编辑类别页面不是 refreshed/reloaded,那么 View Categories 按钮可以正常工作。

这是我的 View Categories 按钮的代码

<a href="{{ url()->previous() }}" class="btn btn-primary"><i class="material-icons">arrow_back</i> View Categories</a>

我遇到的问题是,如果我要刷新 Edit Category 页面或保存一些编辑,此 View Categories 按钮将停止按预期工作,因为当我单击它时它只会刷新并停留在相同的 Edit Category 页。

我知道这是因为在我的浏览器历史记录中,一旦重新加载 Edit Category 页面,它就会成为历史中的最后一页,因此理所当然地成为加载的页面。

如何让我的 View Categories 按钮在 reloading/refreshing 当前 Edit Category 页面之后返回到最后一个分页页面?

我用过:<a href="{{ url()->previous() }}" class="btn btn-primary"><i class="material-icons">arrow_back</i> View Categories</a>

<a href="{{ URL::previous() }}" class="btn btn-primary"><i class="material-icons">arrow_back</i> View Categories</a>

<a href="history.back()" class="btn btn-primary"><i class="material-icons">arrow_back</i> View Categories</a> 和 none 按预期工作。

我可以让 View Categories 按钮返回类别页面,但问题是我必须确保它落在上次访问的 http://127.0.0.1:8000/categories?page=NUMBER

请注意:这不是控制器、组件、路由或 web.php 问题。所有这些都很好。我只想让我的 Go Back 按钮正常工作。

我遇到了一些类似的问题,并通过使用这个解决了它:

return redirect()->back();

但是,由于您没有 post 任何代码,所以很难告诉您具体的事情。

不确定您的具体情况,但您可以尝试以下代码,因为您已经知道使用正确参数的确切网页:

Route::get('/view-category/{id}',[CategoryController::class,'view'])->name('view-category')
{{ route('view-category',[id]) }}

这非常有用Laravel Session

  public function index(Request $request){
        $categories = Category::latest()->paginate(5);
        //the following snippet creates persistent session variables
        $request->session()->put('page',$categories->currentPage());
        return view('orders.view',compact('orders'));
  }

还更改了 View Categories 按钮:

<a href="{{ url()->previous() }}" class="btn btn-primary"><i class="material-icons">arrow_back</i> View Categories</a>

为此:

<a href="{{ Session::has('page') ? '/categories?page=' . Session::get('page') : '/categories' }}" class="btn btn-primary"><i class="material-icons">arrow_back</i> View Categories</a>

此按钮首先测试 $_SESSION['page'] 是否已设置,如果已设置,则单击它会将最后一个已知值分配给 ?page=,作为额外的预防措施,如果由于某种原因找不到会话值按钮将重定向回 category.view,这是类别登录页面。

这正是我想要实现的目标,我惊讶地发现不存在任何本机或内置方法,因为我检查了大多数 public 论坛并重新检查了 Laravel Doc并没有找到我要找的东西。 也许问题不够清楚,但我确信我已经提供了足够的 material 来清楚地描述我想要实现的目标。