当前位置: 首页 > 知识库问答 >
问题:

验证,然后重定向到Laravel中的post路由

微生毅
2023-03-14

是否可以将用户重定向到Laravel中的POST路由。我有两张表格。表格一发送到包含表格二的路线,表格二发送到最终路线,然后进行验证。如果$validator-

Redirect::to('Form-Two')->withErrors($validator);

我尝试过使用它,但失败了,可能是因为它只适用于Get路由。我想做的一件事是将用户重定向到一个Get路由,然后从该Get路由将数据发布到表单2,但这听起来很愚蠢。有没有更干净的方法。我是个新手。

表格二:

Route::post('form-two', array('before' => 'csrf', function()
{
    $formOneData= Input::all();
    $rules = array(...);

    $validator = Validator::make($formOneData, $rules);
    if ($validator->fails()) {
        return Redirect::to('Form-One')->withErrors($validator);
    }
}

最终页面:

Route::post('final', array('before' => 'csrf', function()
{
    $finalData = Input::all();
    $rules = array(...);

    $validator = Validator::make($finalData, $rules);
    if ($validator->fails()) {
        return Redirect::to('Form-Two')->withErrors($validator);
    }
}

共有1个答案

丌官子安
2023-03-14

这不是一个特别的Laravel问题,这需要您了解HTTP重定向是如何工作的。当您向浏览器发送重定向时,您正在向浏览器发送302重定向,其中包含要重定向到的URL。浏览器会将GET请求重定向到提供的URL。您可能会将响应代码更改为307,它要求浏览器使用与最初使用安全消息调用的方法相同的方法执行重定向,但依赖此方法是个坏主意,因为它在不同浏览器中的实现方式不同。此外,Laravel还要求您使用自己的头构建一个自定义响应对象

为了保持代码在不同浏览器之间的兼容性,最好将GET和POST逻辑分开。这就是为什么直接从发布路线返回视图通常是个坏主意。

在我看来,如果你想要你想要的功能,你真的需要重新考虑和返工你的表单是如何工作的。

 类似资料:
  • 我正在对我的Laravel控制器进行简单验证: 我的问题是,如果失败,这个验证会将我重定向到主,我通过AJAX发出请求,我知道Laravel会检测到通过Ajax发出的请求,但它只有在正常请求(我发送的典型请求标题与内容类型应用程序/json和正文中我发送了一个正常的JSON 但是Laravel无法检测到当te Ajax请求不是时,我使用的是JavaScript的对象,因此,我没有发送标题,而是在正

  • 我试图利用从redux store到HOC的状态来允许或拒绝我*应用程序中的用户,例如私人路由。 我下面的文档从反应路由器,它的一半工作。我的问题是,当我转到网址或刷新新认证的路由时,如果没有认证,我会被重定向。点击导航栏工作,见下面我的gif。 *我也在使用Next.JS,但无法让路由系统使用语义UI React。这就是我使用React路由器的原因。 这是我的全部内容: My HOC Priva

  • 问题内容: 我试图弄清楚如何“保留” BindingResult,以便可以通过Spring 标记在随后的GET中使用它。我要这样做的原因是由于Google App Engine的SSL限制。我有一个通过HTTP显示的表单,该帖子发布到HTTPS URL。如果我仅转发而不是重定向,则用户将看到https://whatever.appspot.com/my/form URL。我正在努力避免这种情况。任

  • 重定向::客户(登录)似乎只适用于GET请求。也就是说,它将把经过身份验证的用户重定向到原始的预期URL(GET)。 在存在POST请求的情况下,在用户成功登录后,是否有一种方式让auth筛选器继续向URL发布? 一个简单的例子:我想展示一个可供任何人查看的表单。点击submit按钮后,auth过滤器将启动,并将来宾带到登录页面。成功验证后,我希望提交请求(即POST请求)继续。

  • 我想重定向用户回到他们在Laravel 5成功登录后登录页面之前查看的页面。目前,如果用户写了一个错误的用户名/密码,他会被重定向到登录页面,显示错误,我想保持这种方式。另外,我希望当用户点击页面上的登录按钮时,以及当用户被自动重定向到登录页面时,此功能能够正常工作。 在我看来 是这里的关键,但我不知道如何让它“重定向到不是登录页的最后一页”。感谢您的帮助。

  • 我有一个两步验证表单,这意味着第一个用户输入得到验证(在ValidatecKetData控制器中),如果一切正常,您可以进入下一个表单页面,我可以通过 问题:在第二页,用户需要上传一个文件,如果他不这样做,验证失败。 如果是这种情况,验证器类立即重定向,因为它是后路由,所以不起作用。 所以我创建了一个这样的获取路线: 并将其放入-方法: 我把它放到了-method中,因为如果用户不在第二页附加文件