Post Verilerinin Hepsini Tek Seferde Almak

Merhaba Arkadaslar,

Yii framework konusunda yeniyim.


    public function actionAyarUpdate(){


        $siteadres      =   Yii::app()->request->getPost('Site_Adres');

        $siteaciklama   =   Yii::app()->request->getPost('Site_Aciklama');

        $sitebaslik     =   Yii::app()->request->getPost('Site_Baslik');

        $siteanahtar    =   Yii::app()->request->getPost('Site_Anahtar');

        $sitedurum      =   Yii::app()->request->getPost('Site_Durum');

        $sitemail       =   Yii::app()->request->getPost('Site_Mail');

        $sitegoogle     =   Yii::app()->request->getPost('Site_Google');

        $post = Ayarlar::model()->findByPk(1);

        $post->Site_Adres = $siteadres;

        $post->Site_Aciklama = $siteaciklama;

        $post->Site_Baslik = $sitebaslik;

        $post->Site_Anahtar=$siteanahtar;

        $post->Site_Durum=$sitedurum;

        $post->Site_Mail=$sitemail;

        $post->Site_Google=$sitegoogle;

        $post->save();

        $guncel = $post->save();




// geldigi actiona yada sayfaya yonlenmeli




    }

Post verilerini kullandigim bir formdan bu sekilde alip guncelletebildim. ancak bu konunun daha kisa ve guvenilir bir versiyonunun yii de oldugunu dusunuyorum.

Aydinlatirsaniz sevinirim.

Save yaptiktan sonra geldigi yere yonlenmesi icinde bir redirect olmali denedim ama bulamadim yardimci olursaniz sevinirim.

$post = Ayarlar::model()->findByPk(1);

$post->attributes=$_POST[‘Site’];

if($post->save()){

$this->redirect(array(‘view’,‘id’=>$post->id));

}

Cevap icin tesekkurler $_POST[‘Site’]; kisminda bulunan Site tam olarak nedir?

Form id

Submit name

Form name

bu kismi cozemedim.

$_POST[‘Site’] : Site isimli modelinizin ismidir.

yani /protected/models/Site.php dosyanız.

burada yapmanız gereken database de site isimli tablo oluşturmalısınız ya da Site.php içerisinde kendi config tablonuzun ismini belirtmelisiniz.


public function tableName() {

        return 'AYARLARINIZIN OLDUĞU TABLO İSMİ';

    }

her iki şekilde de kullanabilirsiniz ama doğru olanı model ismiyle tablo isminin aynı olmasıdır.

kodu şu şekilde güncelleyebilirsiniz.


$post = Ayarlar::model()->findByPk(1);

$post->attributes=$_POST['Ayarlar'];

if($post->save()){

$this->redirect(array('view','id'=>$post->id));

} 

Ilginiz icin tesekkur ederim aslinda model ismi oldugunu buradaki bilgilere bakarak cikardim ancak veritabaninda tablo ismini ayarlar olarak girmisim dosya ismi Ayarlar.php olmasina ragmen. Bu sekilde deneyecegim. Tesekkurler.