2010-08-06 111 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