کارنکردن متد Save

[font="Tahoma"][right]سلام من برای فراموشی پسورد این کد رو نوشتم ، در این کد متد سیو فالس بر میگردونه دلیلش هم ولیدیشن های مدل یوذر است

من فقط میخوام فیلد تکن رو آپدیت کنم اما نمیشه راهنمایی کنید ؟[/right][/font]

SiteContoller/actionforget :




          $user = User::model()->findByAttributes(array('email' => $email));


            $user->token = sha1(md5($user->username));

            $user->save();

            var_dump($user->getErrors());



[rtl]سلام

آرایه ای از فیلدای مورد نظرتون رو به متد سیو بدید…

[/rtl]


$user->save(array('token'));

[font="Tahoma"][right]باز هم ، همون ارور ها رو داره[/right][/font]

[size="2"][rtl]خوب عزیز اروراشم بگو :|[/size][size="2"]من از کجا الان باید بدونم همون ارورا چیه که بگم چیکار کنی ؟ [/size][/rtl]

[right]ارور ها هربوط به ارور های ویلیدیشن های مدل یوذر است.

[/right]

User/rule :




            array('fname, lname, username, email, password,password_repeat', 'required'),

            array('email', 'email'),

            array('password', 'compare', 'on' => 'create'),

            array('username,email,display_name', 'unique'),

            array('gplus', 'url'),

            array('username', 'length', 'max' => 20,'min'=>5),

            array('token','safe'),

            array('email, password', 'length', 'max' => 50),

            array('password', 'compare', 'on' => 'insert'),

            array('verifyCode', 'captcha', 'allowEmpty' => !CCaptcha::checkRequirements(), 'caseSensitive' => false),



ارور ها :




array(3) { ["password_repeat"]=> array(1) { [0]=> string(58) "تکرار پسورد نمی تواند خالی باشد." } ["gplus"]=> array(1) { [0]=> string(54) "گوگل پلاس یک URL معتبر نمی باشد." } ["verifyCode"]=> array(1) { [0]=> string(36) "کد تأیید معتبر نیست." } }



[rtl]

از سناریو استفاده کن

یه رول جدید اضافه کن

[/rtl]




array('token', 'required','on'=>'update_token'),



[rtl]

[/rtl]




$user->scenario='update_token';



[font="Tahoma"][right]ممنون،حل شد.

از سناریو استفاده کردم ولیدیشن ها به صورت زیر تغییر دادم :[/right][/font]




         array('fname, lname, username, email, password,password_repeat', 'required','except' => 'update_token'),



SiteController/actionforget :




            $email = $_POST['user']['email'];

          $user = User::model()->findByAttributes(array('email' => $email));

            $user->scenario='update_token';

          

            $user->token = sha1(md5($user->username));

            if($user->save(array('token'))){

            Yii::app()->user->setFlash('forgot', 'ok');

            $this->refresh();