📜  laravel 重定向回来 - PHP (1)

📅  最后修改于: 2023-12-03 14:43:50.451000             🧑  作者: Mango

Laravel 重定向回来 - PHP

有时候在 Laravel 应用中,我们需要在某个操作后重定向回之前的页面,以便用户不必手动导航。Laravel 提供了一个方便的方法,即 back() 函数。 本文将向您介绍如何在 Laravel 应用程序中使用 back() 函数以及一些参数选项,以满足您的重定向需求。

返回上一页

最基本的用法是将用户重定向回前一个页面。例如,当用户在通过表单提交数据时,提交结果页之后我们需要将用户重定向回表单页。在 Laravel 应用中,只需使用 back() 函数即可实现。

return back();

这将使用 HTTP_REFERER 头来确定前一个页面,并将用户重定向回该页面。如果没有引用地址,则将用户重定向到主页 /

自定义重定向路径

除了引用前一个页面,您还可以设置要重定向到的特定页面的 URL。您可以通过向 back() 函数传递一个字符串作为参数来实现这一点。

return back('/login');

此操作将用户重定向到 /login 页面,而不是引用页面。

带参数的重定向

在某些情况下,您可能需要在“返回”操作中同时传递参数。例如,当用户在前一个页面上选择某个选项并在当前页面进行操作时,您可能想将前一个页面上的选项添加到当前 URL 中。在 Laravel 应用中,我们可以使用 back() 方法的第二个参数来解决这个问题。

return back()->with('option', 'value');

在这种情况下,我们可以使用 with() 方法将参数传递给前一个页面。在前一个页面上,我们可以使用 old() 辅助函数来检索这些参数。例如,在 Blade 模板中我们可以这样写:

<p>Selected option: {{ old('option') }}</p>

old() 函数会在会话中查找指定名称的参数,并返回它的值。如果没有找到,则返回 null 值。因此,在重定向回前一个页面之前,请务必检查返回的参数是否包含所需的值。

带错误信息的重定向

最后,您还可以使用 withErrors() 方法将错误信息传递回前一个页面。在 Laravel 应用中,这是一种常用的模式,以便在表单提交操作失败时向用户显示错误信息。有关如何在 Laravel 应用程序中验证表单的更多信息,请参见 Laravel 文档

return back()->withErrors('Something went wrong.');

在前一个页面上,可以使用 errors() 辅助函数来检索传递的错误信息。

@if ($errors->any())
  <div class="alert alert-danger">
    <ul>
      @foreach ($errors->all() as $error)
        <li>{{ $error }}</li>
      @endforeach
    </ul>
  </div>
@endif

$errors 变量是 Laravel 默认的一个视图共享变量,它包含了应用程序中的所有错误消息。在这个例子中,我们只显示了第一个错误消息。

结论

在 Laravel 应用中,重定向是一种常用的操作,我们应当掌握一些基本的方法和技巧来实现它。back() 函数是 Laravel 应用程序开发中返回前一个页面的一种有效和强大的方法。通过设置自定义重定向路径、传递参数和错误信息,我们可以灵活地控制用户的导航和行为流程。在使用这些技巧时,要牢记安全性和易用性,以让用户在应用程序中获得最佳体验。