【问题标题】:Select not working in Yii CDbCriteria选择不在 Yii CDbCriteria 中工作
【发布时间】:2018-11-12 09:40:13
【问题描述】:

我有两个相关的表,我必须通过连接查询显示来自这两个表的数据。 我有这个GridView,当我必须进行搜索时它正在“工作”,这意味着如果我必须从连接表中搜索一个字段,它可以工作并显示正确的结果,但我无法显示两个表中的所有列。

这是错误:

CDbCommand 未能执行 SQL 语句:SQLSTATE[42S02]: Base 未找到表或视图:1051 未知表“pratache”。 SQL 执行的语句是:SELECT pratich.* FROM pratiche t LEFT JOIN clienti ON id_cliente = clienti.id LIMIT 10

如您所见,pratiche 之后有 t,因此查询失败。 有什么问题?

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

    $criteria=new CDbCriteria;

    $criteria->select = "pratiche.*,clienti.*";

    $criteria->join='LEFT JOIN clienti ON id_cliente = clienti.id';

    $criteria->compare('id_pratiche',$this->id_pratiche,true);
    //this is the fild that should be shown(from the joined table)
    $criteria->compare('codice_fiscale',$this->codice_fiscale,true);

    $criteria->select = "pratiche.*";
    return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
    ));
}

【问题讨论】:

  • 您的表格是否使用表格前缀?
  • @rob006 不是,但我明白为什么它不起作用!

标签: mysql join search yii yii1.x


【解决方案1】:

已解决! 设置标准的错误方式:

$criteria->select=array('id_pratiche','data_creazione','stato_pratica','nome','cognome');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多