我在Laravel的单个页面上有两种不同的表单。 这是既有注册又有登录表单的注册页面。当我在注册表单上发现错误时,登录表单中会出现相同的错误(请参见图片)。解决这个问题的最好方法是什么?Laravel验证错误视图
直接在我的表格下,我使用@include('errors.common')
来显示验证错误。
我在Laravel的单个页面上有两种不同的表单。 这是既有注册又有登录表单的注册页面。当我在注册表单上发现错误时,登录表单中会出现相同的错误(请参见图片)。解决这个问题的最好方法是什么?Laravel验证错误视图
直接在我的表格下,我使用@include('errors.common')
来显示验证错误。
https://laravel.com/docs/5.0/validation#error-messages-and-views
命名错误袋
如果你有一个页面上有多个表单,可能希望命名MessageBag的错误。这将允许您检索特定表单的错误消息。简单地传递一个名称作为第二个参数withErrors:
<?php echo $errors->login->first('email'); ?>
谢谢!只是我在找什么! – Kaizokupuffball
当验证控制器失败,则必须在重定向表明,如果它是失败的登录或注册:
return redirect()->back()->withInput()->with('loginFail', true);
现在,在你看来,你有你的用户名和注册表格,相应地加载@include('errors.common')
:
@if(Session::has('loginFail')
@include('errors.common')
@endif
使用与注册表单相同的原则。
我明白了。但是我没有使用我自己的控制器进行登录或注册,所以我会在哪里放置' - > with ...'? – Kaizokupuffball
如果您使用Laravel
附带AuthController.php
的另一种解决方案。
在登记表添加隐藏字段与register
名称与1
的值。
在登录表单添加一个隐藏字段的login
与1
值的名称。
现在你可以控制何时显示这样的错误:
// Registration
@if(!$errors->isEmpty())
@if(!empty(old('register')))
@include('errors.common')
@endif
@endif
// Login
@if(!$errors->isEmpty())
@if(!empty(old('login)))
@include('errors.common')
@endif
@endif
我已经更新了这个答案。这应该符合你的要求。 – user2094178
图片是巨大的,所有的,但不必片段:
然后你可以从$错误变量访问命名MessageBag实例的代码,很难说出了什么问题。似乎你需要找到一种方法来将这两种形式之间的验证规则分开。每次从这个视图提交表单时,他们都使用相同的验证规则。 –
这是errors.common视图。 http://pastebin.com/R8XZjpVW 它包含在登录和注册表格中。 我使用Laravel附带的默认身份验证方法。 – Kaizokupuffball
再一次,它与您的刀片模板无关,无法处理错误。你的两种形式使用什么行动?应该带着开始窗体标签'