yii dataprovider返回错误500

时间:2015-09-21 06:23:54

标签: gridview yii cactivedataprovider

我尝试在dataprovider中为CGridView定义yii,但我得到了这个

  

错误500:尝试获取非对象的属性

以下是我的模型和view / admin.php代码片段

model.php:

public function search2()
{
    $sql='select family_tree.tree_creator_id, C.user_fullname, 
    family_tree.tree_user1_id, A.user_fullname,
    family_tree.tree_user2_id,B.user_fullname,
    family_tree.tree_type, family_tree.tree_type_name
    from family_tree
    join user A on A.user_id=family_tree.tree_user1_id
    join user B on B.user_id=family_tree.tree_user2_id
    join user C on C.user_id=family_tree.tree_creator_id
    ';

    if($this->tree_creator_id!=NULL)
    {
        $sql.="where family_tree.tree_creator_id='$this->tree_creator_id'";
    }

    $a= Yii::app()->db->createCommand($sql)
    ->queryAll();

    return new CArrayDataProvider($a, array(
        'id'=>'family-tree',
        'keyField'=>'tree_id'));
}

admin.php的:

    <?php echo CHtml::link('Advanced Search','#',array('class'=>'search-button')); ?>
<div class="search-form" style="display:none">

    <?php $this->renderPartial('_search',array(
    'model'=>$model,
    )); ?>
</div><!-- search-form -->

    <?php $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'family-tree-grid',
    'dataProvider'=>$model->search2(),

    'columns'=>array(
        'tree_id',
        'tree_creator_id',
        'tree_user1_id',
        'tree_user2_id',
        'tree_type',
        'tree_type_name',

        /*'tree_grey_flag',*/

        array(
            'class'=>'CButtonColumn',
        ),
    ),
)); ?>

任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:0)

在您的选择中,我没有看到

 'tree_id', 

并且可以通过有用的符号避免字段模糊,如

 tableName.columnName as uniqueFieldName 

并在gridview中引用uniqueFieldName

我希望这可能有用