Recuperare Valori Da Un Form

Ciao a tutti,

dopo qualche mese… vorrei riprendere con yii

in particolare sto cercando di modificare applicazione di demo "Blog"

Quello che volevo fare e aggiungere un categoria al post che vado a creare

Pertanto, ho aggiunto un campo "category_id" alla tabella post, ho creato una tabella "category" con id e name.

poi dopo aver creato model e crud di category nel form che crea il post ho aggiunto una combo:




...

    <?php

    $data = CHtml::listData(Category::model()->findAllBySql(

                            'SELECT * from tbl_category'), 'id', 'name');

    echo $form->dropDownList(

            Category::model(), 'id',

            $data, array('empty' => Yii::t('fim', 'Search All')));

....

    ?>




ora nel PostController che riceve i dati e li salva quindiin actionCreate()

ho fatto questo

ho modificato il controller da così





public function actionCreate()

	{

		$model=new Post;

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

		{

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

			if($model->save())

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

		}


		$this->render('create',array(

			'model'=>$model,

		));

	}




a così:




public function actionCreate()

	{

		$model=new Post;

                $modelCategory=new Category;

                

                

                

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

               {

			                   

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

                        

                        $modelCategory->attributes=$_POST['Category'];




                        echo "<pre>";

                        echo var_dump($model->attributes) . "<HR>";

                        echo var_dump($modelCategory->attributes). "<HR>";

                        

                        

               

			if($model->save())

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

                        

                       

		}

                

                


		$this->render('create',array(

			'model'=>$model,

		));

	}




ma naturalmente questo è vuoto

echo var_dump($modelCategory->attributes). "<HR>";

come faccio ricevere e memorizzare i dati?

dove sbaglio?

buona giornata!

giuseppe

Tu ti trovi nella create del Post, non della categoria. C’è una ragione per la quale nel metodo actionCreate istanzi entrambi i model?




                $model=new Post;

                $modelCategory=new Category;



La tua categoria dovresti trovarla in $model->categogry_id. Però non dovresti usare CHtml per disegnare la dropDownList ma qualche cosa di simile a $form>dropDownList();