CGridView relational field not required

Hi @all

i,m go from php 5.2 to 5.3

and i get a error when use CGridView , relational fields and this fileds is not required

the field not required is "id_sector"

the error

my code

in the model





    public function relations()

    {

        return array(


                'sector' => array(self::BELONGS_TO, 'Sector', 'id_sector'),

        );

    }





    public function search()

    {


  $sort = new CSort();

  

  $sort->attributes = array(

   'id_ticket',


   'name'=>array(

      'asc'=>'t.name',

      'desc'=>'t.name desc',

    ),


   'id_sector'=>array(

      'asc'=>'sector.descripcion',

      'desc'=>'sector.descripcion desc',

    ),

   'timestamp'=>array(

      'asc'=>'t.timestamp',

      'desc'=>'t.timestamp desc',

    ),


  );




        $criteria=new CDbCriteria;

                $criteria->addCondition('t.borrado=0');


                $sort->defaultOrder = 't.timestamp DESC';


                $criteria->with=array('sector');

        $criteria->compare('t.id_ticket',$this->id_ticket);





        $criteria->compare('t.name',$this->name,true);


        $criteria->compare('sector.descripcion',$this->id_sector,true);




        $criteria->compare('t.timestamp',$this->timestamp,true);


        return new CActiveDataProvider('Ticket', array(

            'criteria'=>$criteria,

                        'sort'=>$sort,

                        

        ));

    }




in the view





<?php $this->widget('zii.widgets.grid.CGridView', array(

    'id'=>'ticket-grid',

    'dataProvider'=>$model->search(),

    'filter'=>$model,

        'summaryText'=>'Mostrando {start}-{end} de {count}',

    'columns'=>array(




        'name',

                array('name'=>'id_sector','sortable'=>'true','value'=>'$data->sector->descripcion'),

        

        'timestamp',

        

        array(

            'class'=>'CButtonColumn',

        ),

    ),

)); ?>




help !

[edit]

I’m not sure I “solved” the problem

but it works!!




    public function actionAdmin()

    {

        $model=new Ticket('search');

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

            $model->attributes=$_GET['Ticket'];


        error_reporting(E_ALL ^ E_NOTICE);


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

            'model'=>$model,

        ));

    }




You have an error because if you try to access a property on a non-object you get a notice.

Is not a question of version of php, just a question of errorReporting.

I can advice you to use E_ALL and correct your code in the view:




 array('name'=>'id_sector','sortable'=>'true','value'=>'($data->sector)?$data->sector->descripcion:"no sector"'),




thanks !!!!

work fine!