jeffy2009520 2012-03-09 10:18:15 2889次浏览 6条回复 0 0 0
<?php 
$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'bumen-grid',
	'dataProvider'=>$model->search(),
	'filter'=>$model,
	'columns'=>array(
		'bumen',
		array(
			'name'=>'p_bumen',
			'type'=>'raw',
			'value'=>CHtml::value(bumen::model()->find(array("select"=>"bumen","condition"=>"{$data->p_bumen}")),'bumen'),
			'htmlOptions'=>array('style'=>'text-align:center',),
		),
		'beizhu',
		array(
			'class'=>'CButtonColumn',
		),
	),
)); 
?>

当我写成这个样子的时候,发现$data->p_bumen是没有获取到值的,导致value值不正确,单独写成这样'value'=>$data->p_bumen是没有错的,但显示出来的是一个id值,这个显示效果不是我想要的。如果这个要是在model里写查询的话,我不知道该怎么写,指教指教啊 ~

  • 回复于 2012-03-09 11:05 举报

    现在用到几个表?表结构写一下!

  • 回复于 2012-03-09 11:18 举报

    一张表

    CREATE TABLE `xy_bumen` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `bumen` varchar(250) DEFAULT NULL,
      `p_bumen` int(10) DEFAULT NULL,
      `beizhu` varchar(250) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
    
  • 回复于 2012-03-12 20:20 举报

    搞的太复杂了,如果你只是找一层的父元素,可以这样写:

    public function relations()
    {
        return array(
            'parent'=>array(self::BELONGS_TO,'xy_bumen','p_bumen'),			
        );
    }
    

    ==============VIEW==============

    <?php 
    $this->widget('zii.widgets.grid.CGridView', array(
            'id'=>'bumen-grid',
            'dataProvider'=>$model->search(),
            'filter'=>$model,
            'columns'=>array(
                    'bumen',
                    'parent.bumen',
    ));
    ?>
    
  • 回复于 2012-03-12 20:40 举报

    楼上正确,致敬

  • 回复于 2012-03-13 11:56 举报

    我看一下~

  • 回复于 2012-03-13 15:32 举报

    不明白啊,你p_bumen和谁关联了啊,调的时候说 属性 "bumen.parentbumen" 未被定义. ...
    请再说明白一点呗~

您需要登录后才可以回复。登录 | 立即注册