Yii2模型自定义规则和属性的验证,即数组

时间:2015-07-22 10:36:26

标签: yii2 yii2-model yii2-validation

试图解决这个问题但却无处可去。我有一个数组作为模型的属性,我试图根据需要为数组中的一些键创建自定义验证。或者甚至无法弄清楚属性标签的工作方式?这是我的代码:

MODEL

 ...
 public $company = [
                    'name'                  => '',
                    'trading_name'          => '',
                    'type'                  => '',
                ];

 public function attributeLabels(){
    return [
            'company[name]' => 'Company Name',
    ];
 }   

 public function rules(){

    return [
             [['company[name]','company[trading_name'], 'safe'],
             [['company[name]'], 'return_check','skipOnEmpty'=> false],

    ];
 }  

 public function return_check($attribute, $params){

    $this->addError($attribute  ,'Required ');
    return false;
 }
 ...

我甚至尝试传递整个数组并检查验证器方法中的键和值,但自定义验证器甚至没有被触发。

2 个答案:

答案 0 :(得分:1)

我认为你需要为公司分离模型。

答案 1 :(得分:0)

我使用过自定义规则功能,但它们都有效。尝试删除return_check函数末尾的return子句。

以下是对我有用的东西:

class Essid extends ActiveRecord {
    public function rules() {
        return [
            ['network_name', 'checkNetworkName']
        ]
    }

    public function checkNetworkName($attribute, $params){
        if (!$this->hasErrors()) {
            if ( !ctype_alnum($this->network_name) )
                $this->addError($attribute, Yii::t('app', 'Not a valid Network Name'));
        }
    }
}

希望有所帮助

相关问题