[Risolto] Listview + Gridview Relazionata - Come Renderla Filtrabile E Ordinabile?

Solo problema delle viste ‘annidate’.

Ho un Client con n Delivery

Nella detail view di Client devo mostrare la cgridview con i delivery di quello specifico cliente

Ho provato questa soluzione, e questo ha reso ‘ordinabile’ la grid view:




public function actionView($id)

{

      $client = $this->loadModel($id);

      

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

	   	   'model'=> $client,

                   'client_delivery' => Delivery::model()->byClient($id)->search()

       ));

}



Quello che succede è che usando nella CGridView le priorietà nel modo seguente, l’ordinamento va, ma la ricerca no, nella query che risulta dal log NON compare neppure il nome del campo filtrato…




        'dataProvider'=>$client_delivery,

        'filter'=> Delivery::model(),

        'columns'=>array(

            array (

              'name' => 'id',

              'value' => '$data->id'

             ),

            array(

                'name' => 'channel',

                // 'filter' => array('HTTP_POST','HTTP_GET','FTP'),

            ),

            'status',

            

        ),




SOLUZIONE TROVATA !!!



public function actionView($id)


{


        $delivery = new Delivery('search');


        


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


			$delivery->attributes=$_GET['Delivery'];


        }


        


        $client_delivery = $delivery->byClient($id)->search();


                


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


			  'model'=> $this->loadModel($id),


                          'delivery_model'=> $delivery,


                          'client_delivery' => $client_delivery,


	));


}




Nella _view di client, nelle proprietà della griglia




'dataProvider'=>$client_delivery,

'filter'=>$delivery_model,