zcyxm 2012-05-29 22:39:37 2446次浏览 2条回复 0 0 0

场景是怎么来的? 比方说控制器 class User extends CActiveRecord{}

public function rules()
{
	return array(
		array('username,email,password,password2', 'required'),
		array('username', 'length', 'min'=>6, 'max'=>24),
		array('email', 'email'),
		array('password', 'length', 'min'=>6, 'max'=>16),
		array('password', 'compare', 'compareAttribute'=>'password2', 'on'=>'register'),
	);
}

username,email,password,都是必须的,然后注册的时候这样没问题,但是后来,我在更新的时候,就会出现问题(不成功)

$user=User::model()->findByPk($id);
$user->email=’new email’;
$user->save(); 

这个是不是就是因为没定义场景引起的?

书上说:'on'=>'场景' 是可选的, 场景是在初始化某个具体的 CActiveRecord 类时通过构造函数设定的。

这个意思是不是就是,我在用的时候,需要这样 $model=new User('update'); 然后在控制器内array('username,email,password,password2', 'required','on'=>'update'), 写上相当对的 on=>update?

也就是说这个 update 就是一个场景。并且这个场景的名字 update 是我们自己定义的,想取啥名取啥名,且与控制器里面的actionLogin等等之类的action没有半毛钱的关系?

您需要登录后才可以回复。登录 | 立即注册