我想根据属性使Yii Model规则动态化。
它没有给出错误但也没有工作。 难道我做错了什么?有没有更简单的方法呢?
Model.php(属性:NAME
,TYPE
)
public function rules()
{
return array(
// Name is only required when Type is equal 1.
$this->type==1 ? array('name', 'required') : null,
);
}
答案 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';
}
....