Cactiveform Submit Error

I am having problems with the form post when I wonder what is the error?


view page


<?php

/* @var $this UyelerController */

/* @var $model Uyeler */


?>

<div class="form">


    <?php $form=$this->beginWidget('CActiveForm', array(

        'id'=>'uyeler-form',

      // 'action'=>Yii::app()->createUrl('//uye/ekle'),

       // 'method'=>'post',

        // Please note: When you enable ajax validation, make sure the corresponding

        // controller action is handling ajax validation correctly.

        // There is a call to performAjaxValidation() commented in generated controller code.

        // See class documentation of CActiveForm for details on this.

        'enableAjaxValidation'=>false,

    )); ?>


    <p class="note">Fields with <span class="required">*</span> are required.</p>


    <?php echo $form->errorSummary($uyeler); ?>


    <div class="row">

        <?php echo $form->labelEx($uyeler,'uye_id'); ?>

        <?php echo $form->textField($uyeler,'uye_id',array('size'=>11,'maxlength'=>11)); ?>

        <?php echo $form->error($uyeler,'uye_id'); ?>

    </div>


    <div class="row">

        <?php echo $form->labelEx($uyeler,'adi'); ?>

        <?php echo $form->textField($uyeler,'adi',array('size'=>11)); ?>

        <?php echo $form->error($uyeler,'adi'); ?>

    </div>


    <div class="row">

        <?php echo $form->labelEx($uyeler,'soyadi'); ?>

        <?php echo $form->textField($uyeler,'soyadi',array('size'=>11)); ?>

        <?php echo $form->error($uyeler,'soyadi'); ?>

    </div>


    <div class="row">

        <?php echo $form->labelEx($uyeler,'dogum_yeri'); ?>

        <?php echo $form->textField($uyeler,'dogum_yeri',array('size'=>11)); ?>

        <?php echo $form->error($uyeler,'dogum_yeri'); ?>

    </div>


    <div class="row">

        <?php echo $form->labelEx($uyeler,'dogum_tarihi'); ?>

        <?php $this->widget('zii.widgets.jui.CJuiDatePicker',array(

            'name'=>'dogum_tarihi',

            'language' => 'tr',

            'value'=>date('Y-m-d'),

            // additional javascript options for the date picker plugin

            'options'=>array(

                'showAnim'=>'fold',

                'dateFormat' => 'yy-mm-dd', //save to db format

                // 'altFormat' => 'dd-mm-yy', // show to user format

                'changeMonth' => 'true', // ay değiştirme

                'changeYear' => 'true', // yıl değiştirme

                'showOtherMonths'=>true,// Show Other month in jquery

                'selectOtherMonths'=>true,// ay seçebilme

                //'showButtonPanel'=>true, // altta kapat ve bugün butonlarını oluşturuyor.

                'yearRange'=>'1900:2099', // yıl aralığı

                'showOn'=>'button', // 'focus', 'button', 'both' // butona (ikon) tıklandığında ajandanın açılması için

                'buttonImage'=>Yii::app()->request->baseUrl.'/images/calendar.png', // ikonun yolu

                'buttonImageOnly'=>true, // buton kısmında sadece resmin görünmesini sağlıyor. False olsa butun görünür ve butonun üstünde ikon görünür

            ),

            'htmlOptions'=>array(

                'style'=>'width:100px;vertical-align:top'

            ),

        )); ?>

        <?php echo $form->error($uyeler,'dogum_tarihi'); ?>

    </div>


    <div class="row">

        <?php echo $form->labelEx($iller,'nufus_ili'); ?>

        <?php echo $form->DropDownList($iller,'ad',CHtml::listData(Iller::model()->findAll(

                array('order' => 'ilID')),'ilID','ad'),

            array(

                'prompt'=>'İl Seçiniz',

                'ajax'=>array(

                    'type'=>'POST',

                    'url' => CController::createUrl('Ilcesec'),

                    'data'=> array('ilID'=>'js:this.value'),

                    'update'=>'#Ilceler',))

        ); ?>

        <?php echo $form->error($iller,'nufus_ili'); ?>

    </div>


    <div class="row">

        <?php echo $form->labelEx($iller,'nufus_ilcesi'); ?>

        <?php echo  CHtml::dropDownList('Ilceler','', array(),

            array('prompt'=>'İlçe Seçiniz'));  ?>

        <?php echo $form->error($iller,'nufus_ilcesi'); ?>

    </div>


    <div class="row">

        <?php echo $form->labelEx($uyeler,'anne_adi'); ?>

        <?php echo $form->textField($uyeler,'anne_adi',array('size'=>20)); ?>

        <?php echo $form->error($uyeler,'anne_adi'); ?>

    </div>


    <div class="row">

        <?php echo $form->labelEx($uyeler,'baba_adi'); ?>

        <?php echo $form->textField($uyeler,'baba_adi',array('size'=>20)); ?>

        <?php echo $form->error($uyeler,'baba_adi'); ?>

    </div>


    <div class="row">

        <?php echo $form->labelEx($uyeler,'tel'); ?>

        <?php echo $form->textField($uyeler,'tel',array('size'=>20,'maxlength'=>11)); ?>

        <?php echo $form->error($uyeler,'tel'); ?>

    </div>


    <div class="row">

        <?php echo $form->labelEx($uyeler,'kan_grubu'); ?>

        <?php echo $form->DropDownList($uyeler,'kan_grubu',array('1'=>'A Rh (+)','2'=>'A Rh (-)','3'=>'B Rh (+)','4'=>'B Rh (-)','5'=>'AB Rh (+)','6'=>'AB Rh (-)','7'=>'0 Rh (+)','8'=>'0 Rh (-)'),array('empty' =>('Kan Grubu Seçiniz') )); // Kan Grubu listesini dropdownlistte gösteriyor. ?>

        <?php echo $form->error($uyeler,'kan_grubu'); ?>

    </div>


    <div class="row">

        <?php echo $form->labelEx($uyeler,'cinsiyet'); ?>

        <?php echo $form->DropDownList($uyeler,'cinsiyet',array('1'=>'Erkek','2'=>'Kadın'),array('empty' =>('Cinsiyet Seçiniz') )); // Cinsiyet listesini dropdownlistte gösteriyor. ?>

        <?php echo $form->error($uyeler,'cinsiyet'); ?>

    </div>


    <div class="row">

        <?php echo $form->labelEx($uyeler,'adres'); ?>

        <?php echo $form->textField($uyeler,'adres',array('size'=>20,'maxlength'=>255)); ?>

        <?php echo $form->error($uyeler,'adres'); ?>

    </div>


    <div class="row">

        <?php echo $form->labelEx($iller,'adres_ili'); ?>

        <?php echo $form->DropDownList($iller,'ilID',CHtml::listData(Iller::model()->findAll(

                array('order' => 'ilID')),'ilID','ad'),

            array(

                'prompt'=>'İl Seçiniz',

                'ajax'=>array(

                    'type'=>'POST',

                    'url' => CController::createUrl('Ilcesec'),

                    'data'=> array('ilID'=>'js:this.value'),

                    'update'=>'#adresIlceler',))

        ); ?>

        <?php echo $form->error($iller,'adres_ili'); ?>

    </div>


    <div class="row">

        <?php echo $form->labelEx($iller,'adres_ilcesi'); ?>

        <?php echo  CHtml::dropDownList('adresIlceler','', array(),

            array('prompt'=>'İlçe Seçiniz'));  ?>

        <?php echo $form->error($iller,'adres_ilcesi'); ?>

    </div>





    <div class="row">

        <?php echo $form->labelEx($uyeler,'uye_gorevi'); ?>

        <?php echo $form->DropDownList($uyeler,'uye_gorevi',array('1'=>'Üye','2'=>'Başkan','3'=>'Başkan Yardımcısı','4'=>'Muhasip','5'=>'Sekreter','6'=>'Yedek Üye'),array('empty' =>('Üyelik Türü Seçiniz') ,'options' => array(1 => array('selected' => 'selected')) )); // Üye görevi gösteriyor. ?>

        <?php echo $form->error($uyeler,'uye_gorevi'); ?>

    </div>


    <div class="row">

        <?php echo $form->labelEx($uyeler,'uye_kayit_tarihi'); ?>

        <?php $this->widget('zii.widgets.jui.CJuiDatePicker',array(

            'name'=>'uye_kayit_tarihi',

            'language' => 'tr',

            'value'=>date('Y-m-d'),

            // additional javascript options for the date picker plugin

            'options'=>array(

                'showAnim'=>'fold',

                'dateFormat' => 'yy-mm-dd', //save to db format

                // 'altFormat' => 'dd-mm-yy', // show to user format

                'changeMonth' => 'true', // ay değiştirme

                'changeYear' => 'true', // yıl değiştirme

                'showOtherMonths'=>true,// Show Other month in jquery

                'selectOtherMonths'=>true,// ay seçebilme

                //'showButtonPanel'=>true, // altta kapat ve bugün butonlarını oluşturuyor.

                'yearRange'=>'1900:2099', // yıl aralığı

                'showOn'=>'button', // 'focus', 'button', 'both' // butona (ikon) tıklandığında ajandanın açılması için

                'buttonImage'=>Yii::app()->request->baseUrl.'/images/calendar.png', // ikonun yolu

                'buttonImageOnly'=>true, // buton kısmında sadece resmin görünmesini sağlıyor. False olsa butun görünür ve butonun üstünde ikon görünür

            ),

            'htmlOptions'=>array(

                'style'=>'width:100px;vertical-align:top'

            ),

        )); ?>

        <?php echo $form->error($uyeler,'uye_kayit_tarihi'); ?>

    </div>


    <div class="row">

        <?php echo $form->labelEx($uyeler,'uye_durumu'); ?>

        <?php echo $form->DropDownList($uyeler,'uye_durumu',array('1'=>'Aktif','2'=>'Pasif'),array('empty' =>('Üyelik Durumu Seçiniz') ,'options' => array(1 => array('selected' => 'selected')) )); // Üyelik durumu dropdownlistte gösteriyor. ",'options' => array(0 => array('selected' => 'selected'))" istediğin value'nin seçili gelmesini sağlıyor. ?>

        <?php echo $form->error($uyeler,'uye_durumu'); ?>

    </div>


    <div class="row buttons">

        <?php echo CHtml::submitButton('Üye Ekle',array('name'=>'ekle')); ?>

    </div>


    <?php $this->endWidget(); ?>


</div><!-- form -->




Controller file


<?php


class UyeController extends Controller

{

	public function actionArama($kriter)

	{

        /// arama yapmasını sağlayan kod

               $aramasonucu = new Uyeler('search');

               $aramasonucu->unsetAttributes();

        if(isset($_GET['Uyeler']))

            $aramasonucu->attributes=$_GET['Uyeler'];


/// arama yapmasını sağlayan kod bitiş

        $this->render('arama', array('aramasonucu'=> $aramasonucu,'kriter'=> $kriter));




	}


	public function actionEkle()

	{




        if(isset($_POST['ekle']))

        {

            $uyeler = new Uyeler;


          /* echo '<pre>';

            var_dump($_POST);

            exit;*/

            // isset ile formdan gelen verileri kontrol ediyoruz




            $uyeler->uye_id = $_POST['uye_id'];

            $uyeler->adi = $_POST['adi'];

            $uyeler->soyadi = $_POST['soyadi'];

            $uyeler->dogum_yeri = $_POST['dogum_yeri'];

            $uyeler->dogum_tarihi = $_POST['dogum_tarihi'];

            $uyeler->nufus_ili = $_POST['Iller']['ad'];

            $uyeler->nufus_ilcesi = $_POST['Ilceler'];

            $uyeler->anne_adi = $_POST['anne_adi'];

            $uyeler->baba_adi = $_POST['baba_adi'];

            $uyeler->tel = $_POST['tel'];

            $uyeler->e_posta = $_POST['e_posta'];

            $uyeler->kan_grubu = $_POST['kan_grubu'];

            $uyeler->cinsiyet = $_POST['cinsiyet'];

            $uyeler->adres = $_POST['adres'];

            $uyeler->adres_ili = $_POST['Iller']['ilID'];

            $uyeler->adres_ilcesi = $_POST['adresIlceler'];

            $uyeler->uye_gorevi = $_POST['uye_gorevi'];

            $uyeler->uye_kayit_tarihi = $_POST['uye_kayit_tarihi'];

            $uyeler->uye_durumu = $_POST['uye_durumu'];


            if (isset($_POST['ekle']))

            {

                $uyeler->attributes = $_POST['uye_id'];


                $kontrol=Uyeler::model()->findAllByAttributes(array('uye_id'=> $uyeler->uye_id));


                if ($kontrol)

                {

                    $uyeler->addError('uye_id', 'Bu üye numarası daha önceden başka bir üyeye verilmiş...');

                }


                else {





                    if($uyeler->save(true))

                    {

                        // üye kaydı başarılıysa

                        $this->render('mesaj',Yii::app()->user->setFlash('success', "Üye Başarı ile eklendi."));




                    }


                    else

                    {

                        $this->render('mesaj',Yii::app()->user->setFlash('error', "Hata! Üye Kaydı yapılamadı."));




                    }

                }

            }





        }


        else


        {


            $iller = new Iller ;

            $uyeler = new Uyeler ; // uyeler modelimizi dahil ettik

            $this->render('ekle', array('uyeler'=>$uyeler,'iller'=>$iller));


        }


	}





    public function actionIlcesec()

    {

        $data = Ilceler::model()->findAll('ilID=:ilID',

            array(':ilID'=>$_POST['ilID']));

        $data= CHtml::listData($data,'ilceID','ad');


        echo "<option value=''>İlçe Seçiniz</option>";

        foreach($data as $value=>$name)

            echo CHtml::tag('option', array('value'=>$value),CHtml::encode($name),true);

    }


	public function actionGuncelle()

	{

		$this->render('guncelle');


}


	public function actionIndex()

	{


		$this->render('index');

	}


/*   public function actionUyenokontrol()

    {

        $uyeler = new Uyeler ;

        $data = Ilceler::model()->findAll('uye_no=:uye_no',

            array(':uye_no'=>$_POST['uye_no']));

        if (count($data)>0)

        {


            echo " bu üye daha önce alınmış "..,

        }


    }

*/

	// Uncomment the following methods and override them if needed

	/*

	public function filters()

	{

		// return the filter configuration for this controller, e.g.:

		return array(

			'inlineFilterName',

			array(

				'class'=>'path.to.FilterClass',

				'propertyName'=>'propertyValue',

			),

		);

	}


	public function actions()

	{

		// return external action classes, e.g.:

		return array(

			'action1'=>'path.to.ActionClass',

			'action2'=>array(

				'class'=>'path.to.AnotherActionClass',

				'propertyName'=>'propertyValue',

			),

		);

	}

	*/

}


Error:


Undefined index: uye_id 

In you view you use


<?php echo $form->textField($uyeler,'uye_id',array('size'=>11,'maxlength'=>11)); ?>

Take a look at the html source:

The name of the input will be Uyeler[uye_id].

So in your actionEkle you should use


 $uyeler->uye_id = $_POST['Uyeler']['uye_id'];

But it’s not necessary to assign all attributes extra.

Use the features of Yii and do:





   if(isset($_POST['Uyeler'])

   

        /* But don't assign

            $uyeler->uye_id = $_POST['Uyeler']['uye_id'];

            $uyeler->adi = $_POST['Uyeler']['adi'];

            $uyeler->soyadi = $_POST['Uyeler']['soyadi'];

            ...

           */

    

     //assign the 'safe' attributes submitted from the form at once  

     $uyeler->attributes=$_POST['Uyeler']; 




You should take a look at the guide/tutorials how working with models and forms in Yii.