gpt4 book ai didi

mysql - Yii2 - 计数和总和不包括 ActiveQuery 的结果

转载 作者:行者123 更新时间:2023-11-29 06:01:56 24 4
gpt4 key购买 nike

基本上我在 mysql 中有一个遗留查询,我将在 ActiveRecord 中实现它,

Legacy Way,正如预期的那样

SELECT 
a.container_seal,
a.size ,
count(a.size) as bundles,
sum(a.piece) as pieces
FROM pipe a
WHERE a.outgoing_pipe_id IS NULL
GROUP by a.container_seal, a.size
ORDER by a.container DESC

AR方式

 $modelPipe = Pipe::find()

->select([
"container_seal",
"size",
"count(size) as bundles",
"sum(piece) as pieces"
])

->where(['outgoing_pipe_id' => NULL])
->groupBy(['container_seal', 'size'])
->orderBy(['container' => SORT_DESC])
->all();

但是为什么,当我调试它的时候,

  <pre>
<?php
print_r($modelPipe);
?>
</pre>

计数和求和不成。

Array
(
[0] => app\models\hanwa\Pipe Object
(
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
[container_seal] => TEMU6099067/ EMCCSQ6566
[size] => 15 x 35 x 0.85 x 6000
)

[_oldAttributes:yii\db\BaseActiveRecord:private] => Array
(
[container_seal] => TEMU6099067/ EMCCSQ6566
[size] => 15 x 35 x 0.85 x 6000
)

[_related:yii\db\BaseActiveRecord:private] => Array
(
)

[_errors:yii\base\Model:private] =>
[_validators:yii\base\Model:private] =>
[_scenario:yii\base\Model:private] => default
[_events:yii\base\Component:private] => Array
(
)

[_behaviors:yii\base\Component:private] => Array
(
)

)

[1] => app\models\hanwa\Pipe Object
(
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
[container_seal] => TEMU6099067/ EMCCSQ6566
[size] => 35 x 35 x 0.75 x 6000
)

Yii2 是否有另一种方法在 'select' 的情况下使用 sum 和 count ?

最佳答案

你应该在你的管道模型中为 bundle 和 pieces 添加 public var
(用于接收查询结果)

class Pipe extends \yii\db\ActiveRecord
{
public $bundles;
public $pieces;
......

关于mysql - Yii2 - 计数和总和不包括 ActiveQuery 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44267860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com