gpt4 book ai didi

php - 验证然后重定向到 Laravel 中的发布路由

转载 作者:可可西里 更新时间:2023-11-01 00:20:56 26 4
gpt4 key购买 nike

是否可以将用户重定向到 Laravel 中的 POST 路由。我有两种形式。 form-one 被发送到包含 form-two 的 Route,form-two 被发送到 final Route然后它被验证。如果 $validator->fails() for form-twofinal Route 的真值,我想将用户发送回 < em>from-two 但它是一个POST 路由

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

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

形式二:

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);
}
}

最佳答案

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

为了保持您的代码在浏览器之间兼容,最好将 GET 和 POST 逻辑分开。这就是为什么直接从 POST 路由返回 View 通常不是一个好主意。

在我看来,如果您想要实现您想要的功能,您确实需要重新考虑和修改表单的工作方式。

关于php - 验证然后重定向到 Laravel 中的发布路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23863154/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com