laravel的表單驗證(下面有些信息未驗證,轉的)


后台寫法:

1.1類的方法

$rules = [
    'email'=>'required|between:4,20',
    'password'=>'required|between:6,20'
    // 'code'=>'required|between:4,4'
];
$message = [
    'email.required'=>'賬號不能為空!',
    'email.between'=>'賬號必須在6-20位之間!',
    'password.required'=>'密碼不能為空!',
    'password.between'=>'密碼必須在6-20位之間!',
    // 'code.required'=>'驗證碼不能為空!',
    // 'code.between'=>'驗證碼必須為4位!',
];
$validator = Validator::make($input,$rules,$message);

1.2用控制器集成的validate()方法

$message = [
            'username.required'=>'賬號不能為空!',
            'password.required'=>'密碼不能為空!',
            // 'code.required'=>'驗證碼不能為空!',
            // 'code.between'=>'驗證碼必須為4位!',
        ];
        $this->validate($request, [
            'username' => 'required|max:10',
            'password' => 'required',
        ],$message);



參數說明:
public function validate(Request $request, array $rules, array $messages = [], array $customAttributes = [])

 

返回的錯誤代碼

return back()->with('msg','密碼錯誤!');

視圖

              @if(session('msg'))  
                        <p style="color:red">{{session('msg')}}</p>  
              @endif 
              @if(count($errors)>0)  
                            @if(is_object($errors))  
                                @foreach($errors->all() as $error)  
                                <p style="color:red">{{$error}}</p>  
                                @endforeach  
                            @else  
                            <p style="color:red">{{$errors}}</p>  
                        @endif  
                @endif 

基礎驗證例子

$validator = Validator::make(
       array('name' => 'Dayle'),
      array('name' => 'required|min:5')
);

傳遞給 make 函數的第一個參數是待驗證的數據,第二個參數是對該數據需要應用的驗證規則。多個驗證規則可以通過 "|" 字符進行隔開,或者作為數組的一個單獨的元素。

通過數組指定驗證規則

代碼如下:

$validator = Validator::make(
array('name' => 'Dayle'),
array('name' => array('required', 'min:5'))
);

一旦一個 Validator 實例被創建,可以使用 fails (或者 passes)函數執行這個驗證。

代碼如下:

if ($validator->fails())
{
// The given data did not pass validation
}

如果驗證失敗,您可以從驗證器中獲取錯誤消息。

代碼如下:

$messages = $validator->messages();

您也可以使用 failed 函數得到不帶錯誤消息的沒有通過驗證的規則的數組。

代碼如下:

$failed = $validator->failed();

文件驗證

Validator 類提供了一些驗證規則用於驗證文件,比如 size、mimes等。在驗證文件的時候,您可以和其他驗證一樣傳遞給驗證器。

附帶錯誤消息

在一個 Validator 實例上調用 messages 函數之后,將會得到一個 MessageBag 實例,該實例擁有很多處理錯誤消息的方便的函數。

獲取一個域的第一個錯誤消息

代碼如下:

echo $messages->first('email');

獲取一個域的全部錯誤消息

代碼如下:

foreach ($messages->get('email') as $message)
{
//
}

獲取全部域的全部錯誤消息

代碼如下:

foreach ($messages->all() as $message)
{
//
}

檢查一個域是否存在消息

代碼如下:

if ($messages->has('email'))
{
//
}

以某種格式獲取一條錯誤消息

代碼如下:

echo $messages->first('email', '<p>:message</p>');

注意: 默認情況下,消息將使用與 Bootstrap 兼容的語法進行格式化。

  以某種格式獲取所有錯誤消息

代碼如下:

  foreach ($messages->all('<li>:message</li>') as $message)
  {
  //
  }

錯誤消息 & 視圖

一旦您執行了驗證,您需要一種簡單的方法向視圖反饋錯誤消息。這在 Lavavel 中能夠方便的處理。以下面的路由作為例子:

代碼如下:

Route::get('register', function()
{
return View::make('user.register');
});
Route::post('register', function()
{
$rules = array(...);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails())
{
return Redirect::to('register')->withErrors($validator);
}
});

注意當驗證失敗,我們使用 withErrors 函數把 Validator 實例傳遞給 Redirect。這個函數將刷新 Session 中保存的錯誤消息,使得在下次請求中能夠可用。

然而,注意我們沒有必要明確的在 GET 路由中綁定錯誤消息到路由。這是因為 Laravel 總會檢查 Session 中的錯誤,並自動綁定它們到視圖如果它們是可用的。所以,對於每個請求,一個 $errors 變量在所有視圖中總是可用的,允許您方便的認為 $errors 總是被定義並可以安全使用的。$errors 變量將是一個 MessageBag 類的實例。

所以,在跳轉之后,您可以在視圖中使用自動綁定的 $errors 變量:

代碼如下:

<?php echo $errors->first('email'); ?>
可用的驗證規則
  下面是一個所有可用的驗證規則的列表以及它們的功能:
代碼如下:

......

 

轉:http://blog.csdn.net/ghost_hell/article/details/53690137

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM