Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查询Yii2版本升级后不工作_Php_Mysql_Yii2 - Fatal编程技术网

Php 查询Yii2版本升级后不工作

Php 查询Yii2版本升级后不工作,php,mysql,yii2,Php,Mysql,Yii2,我正在将一个Yii2应用程序从Yii2.0.6迁移到Yii2.0.37 此SQL查询用于初始化SqlDataProvider: $dataProvider = new SqlDataProvider([ 'sql' => 'SELECT * FROM new_form nf JOIN company_quote_log cql ON nf.log_id = cql.log_id JOIN company_quote_status_log cqsl ON cql.id = cqsl.

我正在将一个Yii2应用程序从Yii2.0.6迁移到Yii2.0.37

此SQL查询用于初始化SqlDataProvider:

$dataProvider = new SqlDataProvider([
    'sql' => 'SELECT * FROM new_form nf JOIN company_quote_log cql ON nf.log_id = cql.log_id JOIN company_quote_status_log cqsl ON cql.id = cqsl.company_quote_log_id WHERE cqsl.status_id IN (1,2,3,4,5,6,7) GROUP BY cql.log_id',
    'sort' => [
        'defaultOrder' => [
            'form_id' => SORT_DESC
        ], 
        'attributes' => ['crdate', 'form_id']
    ],
    'pagination' => [
        'pageSize' => 5550,
    ]
]);

这三个表有一个
id

在旧版本中,它执行得非常完美。在新版本中,它抛出:

Database Exception – yii\db\Exception
SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'id'
似乎需要重命名列以使Yii接受此查询


MySql服务器在两种环境中都是相同的版本。

通过明确命名上下文真正需要的列(即
GridView
中使用的列)进行修复


这通常是错误的代码<代码>选择表。*…是一个不好的做法,正如注释中提到的那样。

不要使用
SELECT*
,此外,这是一个不好的编程,因为您可以看到在连接后有2个id文件,而不是2个,有3列名为
id
。但是新的表单表有很多列,超过100列(不是我的设计)。是否有解决方法,或者必须明确列出列?