Yii在模型中有个场景属性(scenario),文档(http://www.yiiframework.com/doc/guide/1.1/zh_cn/form.model)中提到如果在场景中执行块赋值,就只有出现在该场景验证规则中的特性会被块赋值,例如:array('username,password','required','on'=>'login,register'),array('email','required','on'=>'register'),如果我们在login场景中执行块赋值,就只有username和password会被块赋值,因为只有它们出现在login场景的验证规则中。如果场景是register,这三个特性就都会被块赋值。在实际的应用中,创建一个LoginForm模型拥有“username,password,email”三个属性并设置默认值,然后在控制器中执行:$model=newLoginForm('login');$model->attributes=$_POST;//$_POST=array('username'=>'value','password'=>'value');此时得到的$model->attributes属性中还是含有LoginForm模型所有的3个属性的,不知道要怎样才能得到经过验证器过滤后只含有username和password这两个键的属性,因为可能我需要将这两个字段插入数据库但是不需要有email属性,或者我需要将这两个属性输出到视图中附加到URL参数后面另外咨询下Yii::app()->clientScript->registerCssFile该方法在视图中调用怎么自定义插入位置,默认会插入到title标签的前面,这样不太美观,另外不能自定义位置也可能跟插件或其它的样式冲突。
陪伴而非守候
相关分类