form elemanlarını kaydetmeden işlemek değiştirmek

elimde ki tabloya formdan gelen veriler gii ile üretilmiş sayfalardan kayıt oluyor.

benim istediğim bu form elemanlarının değerlerini başka veriler ile hesaplama işlemlerine katıp, form üzerinden gelmeyen fakat tabloda olan field lara göndermek /kaydetmek…

çok araştırmadım ama direk sormuş oldum.

Ornek bi kod yolluyurum,





if(isset($_POST['User'])){

			$model->attributes=$_POST['User'];

			if($model->createUsername=='No'){

				$model->email='NO EMAIL REQUIRED';

				$model->password='NO PASSWORD REQUIRED';

			}

			if($model->save()){

				$this->redirect(...................);

			}

		}



çok teşekkürler…


if(isset($_POST['User'])){

                        $model->attributes=$_POST['User'];

                        if($model->createUsername=='No'){

                                $model->email='NO EMAIL REQUIRED';

                                $model->password='NO PASSWORD REQUIRED';

                        }

                        if($model->save()){

                                $this->redirect(...................);

                        }

                }



Eğer veritabanında olmayan bir alan kullanıp hesaplama yapmak istiyorsan model içerisine public olarak tanımlayabilirsinz.

örn : $repassword gibi bir değişken

belki faydası olur

Model üzerinde tanımlama ile validation öncesi hesaplatma yapabilirsin. Form veya CRUD işlemleri farketmez.




class MyModel extends CActiveRecord

{

 public function beforeValidate()

        {

            if($this->getIsNewRecord())

            {

                $this->add_date = date('Y-m-d h:m', time());

                $this->add_usr = Yii::app()->getModule('user')->user()->username;

            }

            

            $this->upd_date = date('Y-m-d h:m', time());

            $this->upd_usr = Yii::app()->getModule('user')->user()->username;

            

            

            return parent::beforeValidate();

        }

 }