Yii Framework Forum: Trying To Get Property Of Non-Object - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Trying To Get Property Of Non-Object Rate Topic: -----

#1 User is offline   Javed Iqbal 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 48
  • Joined: 25-October 11

Posted 14 March 2014 - 03:59 AM

Hi All,

I have used bootstrap.widgets.TbGridView in my admin view to display records. I have model SALE join with CLIENT model. I can sale with client id and as well as without client id. When I sale without client id and navigate to admin view, then i get "Trying to get property of non-object", it because there is no such client in CLIENT model with client id 0. Following is the VIEW and model code:

VIEW (admin.php)
$this->widget('bootstrap.widgets.TbGridView', array(
'type'=>'striped bordered condensed',
'dataProvider'=>$model->search(),
'template'=>"{items}{pager}",
'filter'=>$model,
'columns'=>array(
'sale_date',
array('name'=>'client_id',
'value' => 'Clients::model()->find($data->client_id)->name'
),
'discount',
'remarks',
array(
'class'=>'bootstrap.widgets.TbButtonColumn',
'htmlOptions'=>array('style'=>'width: 50px'),
//'template'=>'{view}{update}{delete}',
'buttons'=>array(
'delete' => array(
//'url'=>'Yii::app()->controller->createUrl("ports/delete", array("id"=>$data[id],"command"=>"delete"))',
'visible'=>'false'
),
),
),
),
));


MODEL CODE (sale model)
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('sale_date, productid, sale_quantity, sale_price', 'required'),
array('status', 'numerical', 'integerOnly'=>true),
array('stock_quantity', 'numerical'),
array('client_id, user_id', 'length', 'max'=>20),
array('discount', 'length', 'max'=>18),
array('remarks', 'length', 'max'=>200),
array('edt', 'safe'),
array('sale_quantity', 'validateQty'),
array('sale_quantity','compare','compareValue'=>'0','operator'=>'>','message'=>'Quantity must be greater than 0'),
array('sale_price','compare','compareValue'=>'0','operator'=>'>','message'=>'Sale price must be greater than 0'),
// The following rule is used by search().
// @todo Please remove those attributes that should not be searched.
array('id, sale_date, client_id, discount, remarks, user_id, status, sdt, edt', 'safe', 'on'=>'search'),
);
}
public function search()
{
// @todo Please modify the following code to remove attributes that should not be searched.

$criteria=new CDbCriteria;

$criteria->compare('id',$this->id,true);
$criteria->compare('sale_date',$this->sale_date,true);
$criteria->compare('client_id',$this->client_id,true);
$criteria->compare('discount',$this->discount,true);
$criteria->compare('remarks',$this->remarks,true);
$criteria->compare('user_id',$this->user_id,true);
$criteria->compare('status',$this->status);
$criteria->addCondition('edt is null');



return new CActiveDataProvider($this, array(
'criteria'=>$criteria
));
}
Javed Iqbal

Web Developer
syntecX Solution
skype:javedboqo
0

#2 User is offline   Ghanshyam 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 41
  • Joined: 18-March 13
  • Location:Ahmedabad

Posted 14 March 2014 - 04:25 AM

Hi,
To put condition for client id
 array(
	'name'=>'client_id',
	'value' => '($data->client_id != "")?Clients::model()->find($data->client_id)->name:""' 
 ),
 


Thanks,
0

#3 User is offline   Javed Iqbal 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 48
  • Joined: 25-October 11

Posted 14 March 2014 - 04:35 AM

View PostGhanshyam, on 14 March 2014 - 04:25 AM, said:

Hi,
To put condition for client id
 array(
	'name'=>'client_id',
	'value' => '($data->client_id != "")?Clients::model()->find($data->client_id)->name:""' 
 ),
 


Thanks,



I have tried this already but I am getting same error.
Javed Iqbal

Web Developer
syntecX Solution
skype:javedboqo
0

#4 User is offline   Ghanshyam 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 41
  • Joined: 18-March 13
  • Location:Ahmedabad

Posted 14 March 2014 - 04:38 AM

array(
                    'name'=>'client_id',
                    'value' => '(isset($data->client_id) && $data->client_id != "")?Clients::model()->find($data->client_id)->name:""' 
             ),

0

#5 User is offline   Javed Iqbal 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 48
  • Joined: 25-October 11

Posted 14 March 2014 - 05:14 AM

View PostGhanshyam, on 14 March 2014 - 04:38 AM, said:

array(
                    'name'=>'client_id',
                    'value' => '(isset($data->client_id) && $data->client_id != "")?Clients::model()->find($data->client_id)->name:""' 
             ),



I have tried this as well, but still I am getting "Trying to get property of non-object" error. I think I need to change something in Sale Search function because Gridview dataprovider is search of sale model.
Javed Iqbal

Web Developer
syntecX Solution
skype:javedboqo
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users