Yii:CgridView通过几个关系

lnvxswe2  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(146)

我按照这个指南创建了一个cgridview,允许搜索和排序相关的模型:http://www.yiiframework.com/wiki/281/searching-and-sorting-by-related-model-in-cgridview/
以下是我的关系:许可证BELONGS_TO安装安装BELONGS_TO节点
我可以通过这种方式创建一个CGridview与我的许可证和安装模型的任何字段。但是,我可以有节点模型的字段,但我有以下错误时,搜索它:
CDbCommand无法执行SQL语句:数据库状态[42P01]:未定义得表:7错误:对表节点行1 FROM子句条目的引用无效:....“f_产品标识”=“产品”.“f_产品标识”)WHERE(安装编号...提示:表节点存在现有输入,但无法在此查询中引用
我不明白,我的表节点链接在我的搜索函数中。
下面是我的CGridview模型许可证:

$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'t-license-grid',
    'dataProvider'=>$model->search(),
    'filter'=>$model,
    'columns'=>array(
            array(            
              'name'=>'siteId_search',
              'value'=>'$data->install->node->f_site_id',
              'header'=>'Site',
            ),
            array(            
              'name'=>'installId_search',
              'value'=>'$data->install->f_install_id',
              'header'=>'installId',
            ),
            [...]
    ),
));

我的许可证型号:

public function search()
{
    // Warning: Please modify the following code to remove attributes that
    // should not be searched.

    $criteria=new CDbCriteria;

    $criteria->with=array('install.node', 'install.product');           

    $criteria->compare( 'install.node.f_site_id', $this->siteId_search, true );

    $criteria->compare( 'install.f_install_id', $this->installId_search, true );

    [...]

    return new CActiveDataProvider('t_licence', array(
            'criteria'=>$criteria,
    ));
}

有什么想法吗?你可以看到我的搜索功能也调用表安装。产品,我有同样的问题。

9w11ddsr

9w11ddsr1#

解决了!这是一个愚蠢的事情,我只是不得不改变这个

$criteria->compare( 'install.node.f_site_id', $this->siteId_search, true );

$criteria->compare( 'node.f_site_id', $this->siteId_search, true );

在我搜索中()

相关问题