我在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
再一次,它與您的刀片模板無關,無法處理錯誤。你的兩種形式使用什麼行動?應該帶着開始窗體標籤'