Cha*_*nya 3 php validation redirect laravel
是否可以将用户重定向到Laravel中的POST路由.我有两种形式.形一个被发送到路径含有形式二个和形状2被发送到最终路由,然后将其进行验证.如果$validator->fails()为形式二是在一个truthy值最终路线我想给用户发送回从两,但它是一个POST路线.
Redirect::to('Form-Two')->withErrors($validator);
Run Code Online (Sandbox Code Playgroud)
我尝试使用它但它失败了可能因为它只适用于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);
}
}
Run Code Online (Sandbox Code Playgroud)
最终页面:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
这不是特别的Laravel问题,这要求您了解HTTP重定向的工作原理.当您向浏览器发送重定向时,您正在向浏览器发送302重定向,并带有要重定向到的URL.浏览器会将GET请求重定向到提供的URL.您可能会将响应代码更改为307,要求浏览器使用与最初使用安全消息调用的方法相同的方法执行重定向,但依赖于此,因为它在浏览器中的实现方式不同.Laravel还要求您使用自己的标头构建自定义响应对象.
为了使代码在浏览器之间保持兼容,最好将GET和POST逻辑分开.这就是为什么直接从POST路由返回视图通常是个坏主意.
我看到这个的方式,如果你想要你想要的功能,你真的需要重新考虑并重新设计表单的工作方式.
| 归档时间: |
|
| 查看次数: |
3104 次 |
| 最近记录: |