2014-02-17 66 views
0

我有一個關於Laravel 4和驗證概念的問題。Laravel4 Validator和空字段

我有我的MySQL表和我的模型Calass .. 我們可以假設我們有一個可爲空場...

如果該字段不爲空,我怎麼能驗證呢? (例如我會我MAXVALUE的整數值<)

+0

我認爲你可以沒有這個功能。我在laravel文檔中找不到 –

+0

默認情況下,所有字段都是可以爲空的,除非您使它們不爲空。你會像其他任何東西一樣驗證它們。您還應該注意到,Validator類不關心數據庫中的列,它所做的只是驗證數據。 – user3158900

回答

0

,您可以創建驗證到模型

例:

class User extends Eloquent { 

     protected $table = 'users'; 

     public $timestamps = false; 

     public static function validate($input) { 
       $rules = array(
         # place-holder for validation rules 
       ); 

       # validation code 
     } 

} 

更說明有關驗證laravel book

1

除非添加'必需'規則,否則驗證將始終將字段視爲可選項。因此,如果字段爲空或空字符串,則規則如numeric|max:9000將是有效的,但是如果提供它必須是小於9000的數字。

要防止將空字符串或空字符串保存到數據庫(MySQL會將其轉換爲0作爲整數字段),您可以爲該屬性設置一個增變器。在你的模型:

public function setNumberAttribute($value) 
{ 
    if ($value !== null && is_numeric($value)) { 
     $this->attributes['number'] = (int) $value; 
    } 
} 

http://laravel.com/docs/eloquent#accessors-and-mutators