我的登录和注册表单总是包含在每个页面的主布局中。
它们中的每一个都被提交到它们各自的路径(/ login和/ register),并且对它们有不同的验证。如果验证失败,控制器会将它们发回到他们所在的任何页面,并使用以下内容:
return Redirect::back()-withErrors($validation,'register')
return Redirect::back()->withErrors($validation)->with('errorsFor','register')
位于我的页面顶部的脚本标记
@if(!(empty($errors)))
//..pseudo code here
@if(<TheVariable that specifies which form the errors are for> == 'register')
//set error messages under the register form
$("#registerForm").modal(); // <-- my forms are opened using bootstrap modal
@elseif(<TheVariable that specifies which form the errors are for> == 'login')
//set error messages under the login form
$("#loginForm").modal(); // <-- my forms are opened using bootstrap modal
@endif
@endif
如何发送回标识符以指定我想为其设置错误的表单,以及发回错误?感谢您提前提供任何帮助。
答案 0 :(得分:0)
代码
return Redirect::back()->withErrors($validation,'register');
似乎没问题,因为您为register
表单指定了一个名为的错误包,这也可以在另一种形式login
上完成,如下所示:
return Redirect::back()->withErrors($validation,'login');
现在要确定表单是否有验证错误,您可以检查这样的条件:
@if($validation->register)
//set error messages under the register form
$("#registerForm").modal(); // <-- my forms are opened using bootstrap modal
@elseif($validation->login)
//set error messages under the login form
$("#loginForm").modal(); // <-- my forms are opened using bootstrap modal
@endif
要访问特定错误包中的特定字段错误,您可以执行以下操作:
$validation->register->first('field_name');
<强> Laravel's Documentation 强>
注意:您不需要按照代码的第二部分的方式进行操作:
return Redirect::back()->withErrors($validation)->with('errorsFor','register')
因为with('errorsFor', 'register')
表示您传递的变量$errorsFor
的值为'register'
。