Recupero Dati $_Get E $_Post

Salve ho creato un model con una sola regola di validazione




public function rules()

	{

		return array(

			// nome obbligatorio

			array('nome', 'required'),

			// lunghezza compresa tra 3 e 100 caratteri

			array('nome', 'length', 'min'=>3, 'max'=>100),

		);

	}



Questa la view :




<?php

/* @var $this fIL,Controller */

/* @var $model  SearchForm */

/* @var $form CActiveForm */


$this->pageTitle=Yii::app()->name . ' Ricerca Nome';

$this->breadcrumbs=array(

	'Ricerca Nome',

);

?>


<h1>Ricerca</h1>


<?php if(Yii::app()->user->hasFlash('search')): ?>


<div class="flash-success">

	<?php echo Yii::app()->user->getFlash('search'); ?>

</div>


<?php else: ?>





<div class="form">


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

	'action'=>Yii::app()->createUrl('nome/risultati'),

	'method'=>'GET',

	

)); ?>


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


		<div class="row">

		<?php echo $form->labelEx($model,'nome'); ?>

		<?php echo $form->textField($model,'nome',array('size'=>60,'maxlength'=>100)); ?>

		<?php echo $form->error($model,'nome'); ?>

	</div>


	<div class="row buttons">

		<?php echo CHtml::submitButton('Ricerca'); ?>

	</div>


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


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


<?php endif; ?>



Queste le action search e risultati :




    public function actionSearch()

	{

		

              /**

	 * Displays the contact page

	 */

	

		$model=new SearchForm;

                if($model->validate()){

                     if(isset($_GET['SearchForm'])){

                        $dati=$model->attributes=$_GET['SearchForm'];

                        

                     }

                        

                }

		

		$this->render('search',array('model'=>$model));

	

	}


public function actionRisultati()

	{

		

              /**

	 * Displays the contact page

	 */ 

                $data[nome]=Yii::app()->request->getParam('nome');


                // connessione a MySQL con yii

                $connection=Yii::app()->db;


                 // query 

                $sql = "SELECT * FROM nomi where nome like '%$data[nome]%' ";


                // esecuzione della query

                $command=$connection->createCommand($sql);


                //prendo i risultati

                $data[row]=$command->queryAll();




                //conto i risultati 

                $data[numRighe]=$command->execute();   // execute the non-query SQL


                $data[dataReader]=$command->query();

                //Stampo il numero di righe

                //echo "Numero righe: $numRighe";

		

				$this->render('risultati',$data);


		

	

	}



HO alcune domande da fare:

1 l’action Search è corretta , vorrei che facesse il controllo in base alle url e mi inviasse i dati via GET a risultati

2 appena accedo alla pagina ricerca ho :




Please fix the following input errors:

Nome cannot be blank.

Nome *


[il campo input type text]

	

Nome cannot be blank.




Nelle rules avevo impostato i valori amin 3 max 100 mi da l’errore perchè è required , il controllo si potrebbe fare sul click del button?

3- NOn riesco a catturare i risultati nella url ho (cercando casa):


/risultati?SearchForm[nome]=casa&yt0=Ricerca

nella action risultati ho provato così :


$data[nome]=Yii::app()->request->getParam('nome');

Ma niente ; i dati sono recuperabili anche dalla action per poter essere manipolati (come volevo fare io) ?

Nella view ho provato così :




<?php echo 'Nome:'.$nome;

		echo 'Nome: '.Yii::app()->request->getParam('SearchForm[nome]');

		echo 'Nome: '.Yii::app()->request->getQuery('SearchForm[nome]');

		echo 'Nome: '.Yii::app()->request->getParam('nome');

		echo 'Nome: '.Yii::app()->request->getQuery('nome');

		echo 'Nome: '.$_GET['nome'];

		echo 'Nome: '.$_GET['SearchForm[nome]'];


	 ?>



Ma escono tutti vuoti

Prova




//Carico l'array dei dati SearchForm inviatomi via GET/POST

$searchform = Yii::app()->request->getQuery('SearchForm');

echo 'Nome: '.$searchform['nome'];



Funziona, come faccio a modificare i messaggi di errore e sopratutto a farli apparire al submit ?