2013-08-17 53 views
2

我想知道什麼是「最好」的方法來一般地驗證字段。在我的應用程序中,幾個表格都有使用日期選擇器小部件始終輸入的日期值。我不想重複驗證代碼,所以我想要做一些事情,比如在AppModel中填充$ validate數組。但它會在具體模型類中被覆蓋。到目前爲止,我發現的最好的是蛋糕書中的「動態更改驗證規則」一節,並以某種方式將該邏輯應用於AppModel,但它看起來有點冒險和不可靠。有沒有人有提示? (如果您有任何疑問,請詢問。) 感謝CakePHP:AppModel中的通用驗證規則?

回答

0

不同的只是他們的名字 - 唯一可以這麼說:

public function validateDateTime() {} 

等等。這樣您的自定義規則不verwrite核心規則和VICA反之亦然。

0

我有,我希望把3種型號,不重複相同的代碼,在這裏我在AppModel.php做

一些驗證規則,定義與這些規則的一些變種,應在多種模式。

public $validationRules = arra(
    // rules here 
); 

,並添加他們所需車型在AppModel的構造

public function __construct($id = false, $table = null, $ds = null) { 
    parent::__construct($id, $table, $ds); 

    /** 
    * add validation 
    */ 
    if (in_array($this->alias, array('MyModel1', 'MyModel2', 'MyModel3'))) { 
     $this->validate = array_merge($this->validate, $this->validationRules); 
    } 
} 

,如果有一些自定義的驗證功能,這些可以移動到AppModel.php爲好。