Yii动态模型规则

时间:2014-01-09 18:53:11

标签: php yii

我想根据属性使Yii Model规则动态化。

它没有给出错误但也没有工作。 难道我做错了什么?有没有更简单的方法呢?


Model.php(属性:NAMETYPE

public function rules()
{
    return array(
        // Name is only required when Type is equal 1.
        $this->type==1 ? array('name', 'required') : null,
    );
} 

2 个答案:

答案 0 :(得分:2)

更改为(使用scenario):

public function rules()
{
   return array(
      array('name', 'required','on'=>'typeTrue')
   );
}

在控制器中

public function actionSome() {
  $model = new Model();
  if ( $model->type == 1 ) {
    $model->setScenario('typeTrue');
   }
}

答案 1 :(得分:1)

我找到答案,我想分享。 因为它需要使用Yii规则scenarios

Model.php:

 public function rules()
 {
     return array(
         array('name', 'required', 'on'=>'type1'),
     );
 } 

Controller.php这样:

...
if ($model->type==1) {
     $model->scenario = 'type1';
}
....