2010-08-06 116 views
2

有沒有可能在CakePHP模型驗證數組中使用gettext functionallity?在CakePHP模型驗證中使用gettext

通常程序員會做這樣的:

class Data extends AppModel 
{ 
var $validate = array(
    'title' => array(
    'NichtLeer' => array(
    'rule' => array('between', 4, 20), 
    'allowEmpty' => false, 
    'message' => _('Bitte geben Sie einen Titel an!') 
    ) 
) 
); 
} 

但由於它是不可能使用的方法的範圍之外的功能,我必須找到另一個清潔替代。

那麼,有沒有其他的選擇,定義在模型的設置方法即興創建的驗證?

問候, 貝內迪克特

回答

2

建立在構造函數中validate陣列可以被認爲是一種清潔的替代:

class Data extends AppModel { 
    public function __construct() { 
     $this->validate = array(
      'title' => array(
       'NichtLeer' => array(
        'rule' => array('between', 4, 20), 
        'allowEmpty' => false, 
        'message' => _('Bitte geben Sie einen Titel an!') 
       ) 
      ) 
     ); 
    } 
} 
+0

此外,如果你可能有興趣,CakePHP附帶了一些好吃的東西[國際化本地化](http://book.cakephp.org/view/1228/Internationalization-Localization)。 – Mike 2010-08-06 22:08:23

+0

是的,我已經使用所有這些功能:-)謝謝。我想我會堅持這一點。 – Benedikt 2010-08-07 09:36:46

+0

我只提到過,因爲您在代碼中使用了單個下劃線函數,而不是CakePHP附帶的雙下劃線函數。 – Mike 2010-08-07 12:45:24