繁体   English   中英

Yii:CgridView通过几个关系

[英]Yii: CgridView through several relation

我遵循此指南创建了一个cgridview,该搜索允许搜索和排序相关模型: http ://www.yiiframework.com/wiki/281/searching-and-sorting-by-related-model-in-cgridview/

这是我的关系:许可证BELONGS_TO安装install BELONGS_TO节点

通过这种方式,我可以使用许可证的任何字段创建一个CGridview并安装模型。 但是,我可以具有节点模型的字段,但是在其上搜索时出现以下错误:

CDbCommand无法执行SQL语句:SQLSTATE [42P01]:未定义表:7错误:对表节点第1行的FROM子句条目的引用无效:....“ f_product_id” =“ product”。“ f_product_id”)在哪里( install.no ...提示:表节点已有输入,但此查询中无法引用该输入

我不明白,我的表格节点是在搜索功能中链接的。

这是我关于模型许可证的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,
    ));
}

任何想法? 您可以看到我的搜索功能还调用了表install.product,对此我也有同样的问题。

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

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

通过

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

在我的搜索()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM