模型中验证规则不起作用,急!

各位:

在模型中验证规则不起作用,不知道怎么回事?有以下几种情况:

   1.比如在注册页面,当用户输入数据后,点提交,如果提交后不跳转到新的页面,则验证就可以了,如果提交后跳转到新的页面,验证就不起作用了,不知道是咋回事?



Model: public function rules(){

		return array(			

			array('username,password,user_email','required','on'=>'register'),

			array('username','authUsername','on'=>'register'),		

			array('user_email','email'),				

		);

	}



2.不能给动作指定的规则?比如要给‘search’动作自定义规则:


      array('username,,'required','on'=>'search'),  

就是不起作用? 在论坛找了好久了,没有找到原因?向各位寻求帮助!

1.错误就不应该跳到新的页面去了,跳到新页面没有当前模型的数据当然不会报错了。

2.确认下存入前是否设置了$model->setScenario(‘search’);

感谢你的回复!

第一种情况,我想是先验证用户是否有输入?然后再保存到数据库当中去,再跳转到新的页面,这样应该可以吧,也不知道是不是这个意思?

CModel->setScenario(‘search’)这个是设置一个场景,这个也设置了,还是不行!

第一点要怎么做你参考下blog例子的create

if($model->save())


	$this->redirect(...);

就是如果保存成功再重定向到其他页,没成功则继续执行下面的代码还是在本页。

第二点再调试看看,看看是否是错误定向造成还是什么,可以在beforeSave前输出model看看

感谢独飞热心回复!

现在验证可以了!