首页 > php框架 > Laravel > 正文

Laravel如何获取上一次请求的URL和输入

裘德小鎮的故事
发布: 2025-11-19 14:26:02
原创
706人浏览过
使用 url()->previous() 或 request()->header('referer') 获取上一页 URL,结合 withInput() 和 old() 保留表单输入,需确保 StartSession 中间件启用。

laravel如何获取上一次请求的url和输入

在 Laravel 中,获取上一次请求的 URL 和输入数据是常见需求,比如表单提交失败后返回原页面并保留输入内容。Laravel 提供了简单且优雅的方式来实现。

获取上一次请求的 URL

使用 url()->previous()request()->header('referer') 可以获取用户来自哪个页面。

  • url()->previous():Laravel 封装的方法,安全且推荐使用。
  • request()->header('referer'):直接读取 HTTP 请求头中的 referer 字段,注意拼写是 "referer" 而非 "referrer"。

示例:

return redirect(url()->previous());
登录后复制

常用于重定向回上一页。

获取上一次请求的输入数据

Laravel 的 old input 机制可以在重定向后保留表单输入。

  • 使用 old('field_name') 获取指定字段的旧值。
  • 在 Blade 模板中常用:<input name="email" value="{{ old('email') }}">
  • 使用 request()->old() 可在控制器中访问旧输入。

当使用 withInput() 时,Laravel 会将当前请求的输入数据存入 session,供下次请求读取。

码哩写作
码哩写作

最懂作者的AI辅助创作工具

码哩写作 91
查看详情 码哩写作

示例:

return back()->withInput();
登录后复制

这会让用户回到前一页,并保留已填写的表单内容。

结合使用场景(如表单验证失败)

典型流程如下:

public function store(Request $request)
{
    $validated = $request->validate([
        'email' => 'required|email',
        'name'  => 'required|string|max:255'
    ]);

    // 验证失败会自动重定向回上一页,并保留输入
    // 手动处理时可:
    if ($someError) {
        return back()->withInput();
    }

    // 正常处理逻辑...
}
登录后复制

Blade 模板中通过 old() 函数恢复输入值。

基本上就这些。Laravel 的 withInput()old() 配合 session,让前后请求之间的数据传递变得非常自然。不复杂但容易忽略的是:确保中间件 StartSessionShareErrorsFromSession 已启用,这是 old input 能工作的前提。

以上就是Laravel如何获取上一次请求的URL和输入的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号