首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Laravel中完成POST后正确重定向?

在Laravel中完成POST后的正确重定向,可以通过以下步骤实现:

  1. 首先,在Laravel中使用POST方法提交表单数据时,需要在表单的<form>标签中设置action属性为目标路由的URL,并且设置method属性为POST
  2. 在路由文件中,定义对应的POST请求路由,并指定处理该请求的控制器方法。
  3. 在控制器方法中,可以通过redirect()函数来进行重定向。该函数接受一个参数,即重定向的目标URL或路由名称。
  4. 如果需要在重定向时传递数据,可以使用with()方法。该方法接受一个关联数组作为参数,其中键为数据的名称,值为数据的值。

下面是一个示例代码:

代码语言:txt
复制
// 表单提交的路由定义
Route::post('/submit', 'FormController@submit')->name('submit');

// FormController.php
class FormController extends Controller
{
    public function submit(Request $request)
    {
        // 处理表单提交逻辑

        // 重定向到指定URL
        return redirect()->route('success')->with('message', '提交成功');
    }

    public function success()
    {
        // 获取重定向时传递的数据
        $message = session('message');

        // 显示提交成功页面
        return view('success', compact('message'));
    }
}

在上述示例中,submit()方法处理表单提交逻辑,并通过redirect()->route('success')进行重定向,同时使用with('message', '提交成功')传递了一个名为message的数据。在success()方法中,可以通过session('message')获取传递的数据,并在视图中显示。

这样,在Laravel中完成POST后的正确重定向就可以实现了。在实际应用中,可以根据具体需求进行适当的调整和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

深入理解 Laravel 管道

基本上,你可以使用 laravel 管道(pipelines)基于链式操作将对象传入多个类中执行任何类型的任务,并在所有「任务」执行完成后一次性返回最终结果。...你可以从 Laravel pipelines 获取更多相关知识。 有关管理工作原理的最常见的示例是在框架本身的组件中的使用。我这里说的就是「中间件」。...如果你快速浏览过 Illuminate\Foundation\Http\Kernel 类,你会看到中间件是如何在 Pipeline 对象中被执行的。...return $next($content); } } 用于处理任务的方法接收两个参数,第一个是一个可传递的对象,第二个是闭包,在运行最后一个管道后对象将被重定向到这个闭包。...但是值得高兴的是在你的知识库中在需要的时候已经建立了管道这个新的武器的知识。 我希望这个实例能够让你对「Laravel Pipelines」有更深如的了解,并知道如何使用它们。

3.3K20
  • 掌握 Laravel 的测试方法

    继而,讲解如何在 Laravel 项目中创建「单元测试」和「功能测试」用例。...本节我们会在 Laravel 中编写单元测试用例对 Post 模型进行测试。 幸运的是,Laravel 同样为我们提供了创建测试用例模版文件的命令工具。...->assertEquals($db_post_title, $model_post_title); } } 我们可以看到更新后的代码和 Laravel 代码编码风格完全一致。...在我们的测试用例中的这个 GET 请求响应状态码应该是 200。此外,测试后还将获取到一个首字母大写的标题,判断标题是否与 $db_post_title 相对的方法是 assertSeeText。...编写完成所有的测试用例后。接下来需要去执行这些测试用例。在 Laravel 项目中运行 PHPUnit 测试用例,仅需在项目更目录执行下面的命令。

    5.7K10

    Laravel 控制器:从 MVC 模式聊起

    说到这里,我们就不得不提一下 MVC 设计模式,这个模式最早在 Ruby On Rails 中引入,然后被基本上所有的 Web 框架所借鉴和遵循,Laravel 也不例外。...所以,你应该具备这样的意识:控制器的主要职责就是获取 HTTP 请求,进行一些简单处理(如验证)后将其传递给真正处理业务逻辑的职能部门,如 Service。...4、依赖注入 正如前面介绍的 Input 门面一样,Laravel 中的门面为 Laravel 代码库中的大部分类提供了简单的接口调用,通过门面你可以轻松从当前获取各种请求数据,比如用户输入、Session...5、资源控制器 有时候在编写控制器时命名方法名称可能是最困难的,好在 Laravel 为常见的 REST/CRUD 控制器(在 Laravel 中称之为「资源控制器」)提供了一套约定规则,并为此提供了相应的...} destroy() post.desc 删除单个文章 绑定资源服务器 通过上面的表格已经了解了 Laravel 中对资源路由的命名约定,Laravel 还为我们提供了一个 Route::resource

    11.3K51

    Laravel5.2之Demo1——URL生成和存储

    这里的url表示提交表单时的路由,方法为post。在这里使用laravelcollective/html这个组件,顺便了解下怎么在laravel中安装组件。 这里书中使用了laravel4....这里注意下:如果不写table变量,laravel会自动根据model名字复数来找数据表,如这个model名字是link,那就找links表。...4、保存数据进入数据库 写好视图表单后,再就是写表单的提交路由及其控制器逻辑,在控制器中引用创建好的Link这个Model往links数据表里存数据。...好,现在就按照流程写代码: 首先: Route::post('url', 'UrlController@postUrl'); 然后在UrlController中写上: public function...6、从数据库中取出URL并且重定向 最后根据生成的URL获取其hash部分,根据hash值从links数据表取出对应的URL为了重定向,这里英文原文也是在路由中写逻辑,这里也在路由里写逻辑: Route

    24.1K31

    通过 Laravel 创建一个 Vue 单页面应用(六)

    我们将完成基本 CURD 的最后一部分:创建新用户。您已经拥有了我们之前讨论过的主题中所需要的所有工具,因此可以尝试创建用户并将本文与您的工作进行比较。...如果您需要跟上,我们在 第5部分  中停止了删除用户的功能,以及在成功删除后如何重定向用户。我们还研究了如何将 HTTP 客户机提取到一个专用模块中,以便在整个应用程序中重用。...提醒一下,本教程并不关注权限;我们使用内置的 Laravel users 表演示如何在 Vue 路由器项目的上下文中使用 CURD。...以下是迄今为止的系列概要: 第1部分 – 设置项目和 Vue 路由器 第2部分 – 在 Vue 路由器中加载异步数据 第3部分 – 在 Laravel 中创建真实的用户端 第4部分 – 编辑用户 第5部分...添加 API 接口 我们准备在 Laravel 中添加 API 接口以创建新用户。这将类似于编辑现有用户。但是,此响应将返回 201 Created 状态代码。

    3.8K20

    在 Laravel 控制器中进行表单请求字段验证

    接下来,我们就一起来看看如何在 Laravel 中对表单请求进行验证。...作为一个灵活的框架,Laravel 提供了多种方式对表单请求进行验证,你可以在控制器中通过 $this->validate() 方法验证用户请求,也可以通过单独的表单验证类定义验证规则,再将其注入到相应的控制器方法...首先我们调整下 routes/web.php 中的表单提交路由,将其命名为 form.submit: Route::post('form', 'RequestController@form')->name...表单请求的话,会重定向到表单提交页,并包含所有用户输入和错误信息,以便重新渲染已填写表单并显示错误信息。...通过 Validator::make 方法进行验证 如果你使用过 Laravel 自带脚手架代码实现登录认证的话,你可能会留意到 RegisterController 中对用户注册请求进行验证的时候,使用的是这样的验证代码

    5.8K10

    PHP 基于 Cookie + Session 实现用户认证功能

    接下来,我们通过 Cookie + Session 来完成博客管理后台的用户认证功能。 基于 Session 实现用户登录功能我们在前面的基础教程中已经演示过了,这里只需在其基础上进行改造即可。...2、路由和控制器 注册路由 做好以上准备工作后,在 app/routes/web.php 中注册用户登录和退出路由: $router->register(['get', 'post'], 'login'...用户登录视图 完成上述视图模板重构后,编写用户登录页面就可以复用头部和底部组件了: 用户退出视图 用户退出通过一个模态框的交互来完成,对应的引用代码在导航组件 nav.php 中: 后,页面会再次重定向到登录页面,表示用户退出成功。 关于用户认证的部分,学院君就简单介绍到这里,下篇教程,我们来完善后台专辑、文章、消息的增删改查功能,从而构建博客系统前后端功能闭环。

    2.4K20

    基于 Symfony 组件封装 HTTP 请求响应类

    : composer require symfony/http-foundation 下载完成后的扩展包会保存到 vendor/symfony/http-foundation 目录下,另外,也会在 composer.json...至此,我们就完成了请求和响应类的封装。 使用请求和响应类 最后,我们在入口文件 public/index.php 中使用封装后的请求和响应类重构请求处理逻辑: post.php'; } else { // 改为通过 Response 对象发送重定向响应 $response = new \App\Http\Response('',...,也调整为了调用 request->get() 方法,然后传入参数名作为键,该方法可以获取所有请求参数,包括 GET 请求和 POST 请求的(换言之,就是查询字符串和请求实体中的参数)。...最后,在兜底逻辑中,我们基于 Response 对象设置响应状态码和响应头,对于 Response 类的构造函数,第一个参数是响应实体(默认是空字符串,这里是重定向响应,故而留空),第二个参数是响应状态码

    8.7K20

    玩转 PhpStorm 系列(十):代码调试篇(下)

    所以,作为 PhpStorm 代码调试教程的姊妹篇,这篇教程学院君来给大家演示如何在 PhpStorm 中基于 Xdebug 扩展对 PHP Web 应用进行代码调试。...完成以上初始化操作后,就可以在 PhpStorm 中对 PHP Web 应用进行代码调试配置了,这里我们以一个 Laravel 应用作为示例 Web 项目。...在 PhpStorm 中配置 Web 服务器 接下来,我们就来演示如何在 PhpStorm 中基于 Xdebug 来对上述测试代码进行调试和问题定位。...通过 Xdebug 调试 Laravel 应用 完成上述配置后,在代码编辑器中设置断点: ?...将 welcome.blade.php 中的 post->title 修改为 以上无论是 PHP CLI 脚本,还是 PHP Web 应用,都只是本地进行 PHP 代码调试,如果对应的 PHP 代码部署在远程主机

    2.5K21

    为什么 Laravel 这么优秀?

    我准备从一个后端最常用的 CURD 例子说起,一步一步阐述这过程中 Laravel 都是怎么完成的;以及~大家~(我)为什么喜欢用 Laravel。...courses table & definition model relation 定义课程表的数据库字段和定义模型关系 definition course seeder 当模型及模型之间的关系定义完成后...因为我们已经完成了数据表中字段的定义、表与表的关系、以及最重要的一步:如何将数据及数据之间的关系写入数据库中,下面简单的来介绍下在 Laravel 是如何完成的。...比如你在上一次变更操作中错误的设置了某个表的索引,那我理解的正确的做法不是回滚,而是创建一个新的迁移文件,并在新的迁移文件中 ALTER 之前的修改。...你可以在开发阶段在 .env 文件中将你的缓存驱动改为本地磁盘,将你的队列驱动改为本地同步队列;当你完成所有开发后,只需要在 staging/prod 环境修改 .env 的值就可以了,你几乎不需要做什么额外的工作

    26610

    PHP-web框架Laravel-中间件(一)

    中间件的基本使用在Laravel中,中间件可以通过路由或控制器来指定。...中间件类Laravel中的中间件实际上是PHP类。在创建中间件时,可以选择手动创建类,也可以使用Laravel提供的中间件生成器来自动生成。...该类实现了handle方法,用于检查请求中的年龄是否大于18。如果年龄小于或等于18,则将请求重定向到home路由。否则,将继续执行下一个中间件或控制器操作。注册中间件。...web中间件在这个示例中,我们定义了两个中间件组:web和api。web中间件组包含一组用于Web应用程序的中间件,如加密Cookie、启动会话和验证CSRF令牌。...当访问该路由时,中间件将检查请求中的年龄,并根据需要重定向请求或继续执行下一个操作。

    3.4K31

    Laravel框架关键技术解析

    ,如query()方法中(new static)->newQuery(); F.Laravel中使用的其他新特性 1.trait 优先级:当前类的方法会覆盖trait中的方法,trait中的方法会覆盖基类的方法...,当然,也可以修改不覆盖 3.外观注册分为两个步骤:一是完成外观自动加载类的实例化并将外观别名数组添加到该实例中,这里需要与composer的自动加载类进行区别;二是完成外观自动加载类中的自动加载函数的添加...A.服务容器 1.Laravel中服务容器相当于大脑,服务提供者相当于神经系统 2.服务提供者首先需要将各个功能模块具备的功能注册到服务容器中,当需要完成某些功能时,服务容器会通过服务提供者注册的服务完成相应的准备...B.服务提供者 1.服务提供者中两个方法 register()用于服务绑定 boot()会在所有服务提供者注册完成后才被调用,这时可以在其中使用所有已经注册过的服务 2.注册服务提供者:config\...’) 3.生成自定义响应的实例:new Response()、response() 4.生成重定向的响应:重定向响应是一个特殊的响应,只是在响应报文首部中包含了Location重定向字段,Laravel

    12K20

    Laravel 表单方法伪造与 CSRF 攻击防护

    POST:向指定资源提交数据,请求服务器进行处理,如:表单数据提交、文件上传等,请求数据包含在请求体中。POST 方法是非幂等的方法,因为这个请求可能会创建新的资源或修改现有资源。...Laravel 中的 HTTP 请求方式 Laravel 路由支持通过上面的大部分常用请求方式: /** * Laravel 路由支持的 HTTP 请求方式 * * @var array */...答案是通过表单方法伪造,下面我们就来介绍如何在 Laravel 中进行表单方法伪造。...表单请求方法伪造 要告知 Laravel 当前提交的表单使用的是 GET/POST 之外的其他请求方式,需要在表单中添加一个名为 _method 的隐藏字段,字段值是「PUT」、「DELETE」或 「PATCH...排除指定 URL 不做 CSRF 保护 对于应用中某些第三方回调路由,如第三方登录或支付回调,无法做 Token 校验,需要将这些授信路由排除在 CSRF 校验之外,这个功能可以参考官方文档实现,很简单

    8.7K40

    Laravel 框架入门

    启动开发服务器安装完 Laravel 后,进入项目目录并启动开发服务器:cd my-laravel-appphp artisan serve此时,你可以在浏览器中访问 http://localhost:...body'); $table->timestamps(); });}然后,运行迁移命令来创建数据库表:php artisan migrate使用 Eloquent 操作数据库一旦表创建完成...;$post->save();// 获取所有文章$posts = Post::all();// 查找单条记录$post = Post::find(1);// 更新文章$post->title = '更新后的标题...Blade 模板引擎Laravel 提供了一个简单易用的模板引擎,叫做 Blade。Blade 让你在视图中更方便地使用控制结构(如条件判断、循环等)并且避免了直接在 HTML 中写 PHP 代码。...从基本的应用到复杂的企业级项目,Laravel 都能轻松应对。接下来,你可以深入学习 Laravel 提供的更多功能,如事件、队列、任务调度、文件存储等,进一步提升你的开发能力。

    13600
    领券