2021-07-15 16:33:07 1154次浏览 0条回答 0 悬赏 10 金钱

今天修改yii 1.1开发的一个程序,发生了神奇的一幕,后台登陆的时候会验证模型,提示需要输入用户名和密码、验证码等,可是进入后台之后,所有的模块提交保存数据都不会提示验证model里设置的rules,假如修改的数据是不符合model里的规则,页面自动跳转到列表页面,但是数据不会修改。数据符合model里的rules规则,则会修改保存数据,并提示保存成功,请教如何修改。
model如下:
`
public function rules()
{

// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
	array('username', 'required'),
	array('status, role_id, created_at, updated_at', 'numerical', 'integerOnly'=>true),
	array('username, email, avatar', 'length', 'max'=>255),
	array('email', 'email'),
	array('auth_key', 'length', 'max'=>32),
    array('username, password, captcha', 'required', 'on'=>'login'),
    array('captcha', 'captcha', 'allowEmpty'=>!extension_loaded('gd'), 'on'=>'login'),
    array('username, password, rePassword', 'required', 'on'=>'rePassword'),
	array('password', 'compare', 'compareAttribute'=>'password'),
	// The following rule is used by search().
	//  Please remove those attributes that should not be searched.
	array('id, username, auth_key, password_hash, password_reset_token, email, avatar, status, created_at, updated_at', 'safe', 'on'=>'search'),
);

}
controller如下:
public function actionUpdate($id)
{

$model=$this->loadModel($id);

// Uncomment the following line if AJAX validation is needed
//$this->performAjaxValidation($model);

if(isset($_POST['AdminUser']))
{
	$model->attributes = $_POST['AdminUser'];

	if($model->validate() && $model->save())
        Yii::app()->user->setFlash('success', Yii::t('app', 'Update Success'));
		$this->redirect(array('index'));
}

$this->render('update',array(
	'model'=>$model,
));

}
`

    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
willjz
见习主管

willjz

注册时间:2016-11-20
最后登录:2021-07-16
在线时长:7小时26分
  • 粉丝2
  • 金钱210
  • 威望0
  • 积分280

热门问题