溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何解決laravel5.2表單驗(yàn)證并顯示錯(cuò)誤信息的問題

發(fā)布時(shí)間:2021-07-12 14:21:40 來源:億速云 閱讀:327 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)如何解決laravel5.2表單驗(yàn)證并顯示錯(cuò)誤信息的問題的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

首先說下原理,表單驗(yàn)證使用validate驗(yàn)證器進(jìn)行驗(yàn)證,如果表單驗(yàn)證不通過,將表單數(shù)據(jù)和錯(cuò)誤信息閃存到session中去,然后再到表單中進(jìn)行展示。

1.驗(yàn)證器規(guī)則的寫法,返回一個(gè)規(guī)則數(shù)組

public function rule()
{
 return [
  'name' => [
   'required',
   'max: 5',
   'min: 2',
   'regex: /^[\x{4e00}-\x{9fa5}A-Za-z0-9_]+$/u'
  ],
  'password' => [
   'required',
   'min: 6',
   'max: 12',
  ],
 ];
}

執(zhí)行下面這句話,生成一個(gè)驗(yàn)證器,默認(rèn)會(huì)將錯(cuò)誤信息保存到session中,自動(dòng)重定向到跳轉(zhuǎn)到之前頁面;

$this->validate($request, $this->rule());

這時(shí)返回的頁面沒有獲取到舊的頁面提交的數(shù)據(jù),需要閃存表單數(shù)據(jù)到session中去,不過要將這段語句放在上面那段話之前,因?yàn)樯厦娴恼Z句執(zhí)行發(fā)現(xiàn)錯(cuò)誤了之后,默認(rèn)直接跳轉(zhuǎn)到之前的頁面。

$request->flashOnly(['name', 'password']); // 這是只閃存name和password的意思
// $request->flash(); // 閃存表單的所有數(shù)據(jù)到session中去

顯示錯(cuò)誤信息的代碼如下:

@if (count($errors) > 0)
     <div class="alert alert-danger">
      <ul>
       @foreach ($errors->all() as $error)
        <li>{{ $error }}</li>
       @endforeach
      </ul>
     </div>
@endif

如果在控制器中,有錯(cuò)誤的信息,需要跳轉(zhuǎn)到之前的頁面,也可以使用以下代碼:

return back()->withErrors('更新圖片信息失敗');

同樣會(huì)在之前的頁面顯示錯(cuò)誤信息。

感謝各位的閱讀!關(guān)于“如何解決laravel5.2表單驗(yàn)證并顯示錯(cuò)誤信息的問題”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI