Jump to content
Larry Ullman's Book Forums
Sign in to follow this  
orlymee

Yii Cgridview How To Access Id For Each Column

Recommended Posts

I am using a CGridView with CActiveDataProvider. Everything works fine however now I have a need to show a custom button depending upon the id of the row.

I can add the button and get it to work as well however I cannot customise the image according to the row id. I can see from examples that when creating url I can access the id of row by calling $data->id however when I try to do that for imageURL it does not work. My code is below:

$this->widget('zii.widgets.grid.CGridView', array(
		'dataProvider'=>$model->search(),
		'filter'=>$model,
		'columns'=>array(
				'id',
				'name',
				'desc',
				'created',
				array(
						'class'=>'CButtonColumn',
						'header'=>'Active State',
						'template'=>'{rank}',
						'buttons'=>array(
								'rank'=>array(
										'label'=>'Rank',											  
										'imageUrl'=>$this->getRank($data->id),
										'url'=>'Yii::app()->createUrl("users/updateRank", array("id"=>$data->id))',
										'options'=>array(
												'ajax'=>array(
														'type'=>'POST',
														'url'=>"js:$(this).attr('href')",															  
												),
										),
								),
						),					
				),					
		),
));

Image URL calls a function in my controller which returns a url to the image. However I cannot pass the id of the current record user is clicking upon and I always get the default image back. If I use $data->id I get an error that data does not exist. If I use $this->id it is referring to the controller and I get the controller id. Anyway I can get the id of the row and pass it over to a function.

Share this post


Link to post
Share on other sites

I don't know offhand if the value for imageUrl can be determined dynamically, but if you look at the following line, which assigns a value to url, that line quotes the code to be executed. You should try that.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...