2012-08-14 6 views
3

В модели BaseUser.php, я определить $verifyPassword и добавить его в правилахподтверждение пароля фреймворка

public function rules() { 
     return array(
      array('name, email, phone_code, phone, country, language, password, role, status', 'required'), 
      array('verifyPassword','required', 'on'=>'insert'), 
      array('country, role, status, payment', 'numerical', 'integerOnly'=>true), 
      array('name, email, active_key', 'length', 'max'=>50), 
      array('phone_code', 'length', 'max'=>5), 
      array('phone', 'length', 'max'=>30), 
      array('language', 'length', 'max'=>10), 
      array('password', 'length', 'max'=>32), 
      array('verifyPassword', 'length', 'max'=>32), 
      array('device_token, token', 'length', 'max'=>100), 
      array('created', 'safe'), 
      array('country', 'haveToSelect'), 
      array('email', 'unique', 'message' => Yii::t('app',"This user's email adress already exists.")), 
      array('verifyPassword', 'compare', 'compareAttribute'=>'password'), 
      array('device_token, active_key, token, payment, created', 'default', 'setOnEmpty' => true, 'value' => null), 
      array('id, name, email, phone_code, phone, country, language, password, role, device_token, active_key, status, token, payment, created', 'safe', 'on'=>'search'), 
     ); 
    } 

В ProfileController.php

public function actionIndex() 
    { 

     $data = Yii::app()->session['Authentication']; 
     $idUserLogin = $data->id; 

     $dataUser = Users::model()->findByPk($idUserLogin); 

     if (isset($_POST['Users'])) { 
      $dataUser->setAttributes($_POST['Users']); 

      if($dataUser->save()) { 
       Yii::app()->user->setFlash('success',Yii::t('app','Change profile successful!')); 
       $this->refresh(); 
      } 
     } 

зарегистрировать новую учетную запись успешно, но в другой функции которые используют profile'user ... Я не могу сохранить после изменения.

Например, при изменении профиля функции при нажатии кнопки «Сохранить» ... ничего не меняется ... ничего не предупреждает ... ничего не уведомляет об утверждении.

Как решить эту проблему?

+0

Похоже, что при обновлении что-то не удается с точки зрения проверки. Можете ли вы предоставить мне результаты: echo '

'.print_r($dataUser,true).'
'; после этой строки: $ dataUser-> setAttributes ($ _ POST ['Users']); когда вы пытаетесь сделать обновление? – ews2001

+0

спасибо ... Я любил эту проблему .. :) –

+6

Решается ли этот вопрос? Если это было решение, опубликуйте его сами и принимайте в качестве ответа или просто удалите вопрос, но он может помочь людям в будущем. – Paystey

ответ

0

Я sloved эту проблему ...

Я изменил правила:

public function rules() { 
    return array(
     array('name, email, phone_code, phone, country, language, password, role, status', 'required'), 
     array('verifyPassword','required', 'on'=>'register'), 
     array('country, role, status, payment', 'numerical', 'integerOnly'=>true), 
     array('name, email, active_key', 'length', 'max'=>50), 
     array('phone_code', 'length', 'max'=>5), 
     array('checkAgree', 'required', 'requiredValue' => 1, 'message' => 'You must have to agree with...', 'on'=>'register'), 
     array('phone', 'length', 'max'=>30), 
     array('language', 'length', 'max'=>10), 
     array('password', 'length', 'max'=>32), 
     array('verifyPassword', 'length', 'max'=>32), 
     array('device_token, token', 'length', 'max'=>100), 
     array('created', 'safe'), 
     array('country', 'haveToSelect'), 
     array('email', 'unique', 'message' => Yii::t('app',"This user's email adress already exists.")), 
     array('verifyPassword', 'compare', 'compareAttribute'=>'password', 'on'=>'register'), 
     array('device_token, active_key, token, payment, created', 'default', 'setOnEmpty' => true, 'value' => null), 
     array('id, name, email, phone_code, phone, country, language, password, role, device_token, active_key, status, token, payment, created', 'safe', 'on'=>'search'), 
    ); 
} 

проверить 'verifyPassword' на регистр сценария

и в моем контроллере я определить:

$user = new User('register') 
Смежные вопросы