1

无法使排序链接起作用。(具体或虚拟领域)。

此操作中我的 sum() 字段的虚拟字段:

    $this->Qca->virtualFields['comps'] = 'Sum(CASE WHEN Qca.qca_tipcode = 1 THEN 1 END)';
    $this->Qca->virtualFields['production'] = 'Sum(qca_end - qca_start)';
    $this->Qca->virtualFields['idle'] = 'Sum(Qca.qca_durend)';

我的 find() 工作正常:

    $hoursvalues = $this->Qca->find('all', array('conditions' => $conditions,
        'fields' => array('Qca.dir_id', 'Qca.name', 'Sum(CASE WHEN Qca.qca_tipcode = 1 THEN 1 END) AS Qca__comps', 'Sum(qca_end - qca_start) as Qca__production', 'Sum(Qca.qca_durend) as Qca__idle'),
        'group' => array('Qca.dir_id')
            )
    );

接着:

   $this->paginate('Qca' );
   $this->set('hoursvalues', $hoursvalues);

需要哪些额外设置$this->paginate('Qca' );?请注意,我通过 find() 获得了我需要的所有数据。

我错过了什么排序不适用于具体或虚拟字段?

非常感谢!

卡洛斯

4

1 回答 1

0

您的部分问题如下:

$this->paginate('Qca');
$this->set('hoursvalues', $hoursvalues);

$this->paginate()返回具有排序值的数组。您需要做的是在$this->paginate数组中指定您的额外设置,然后

$this->set('hoursvalues', $this->paginate('Qca'));

对于您的其他领域,制作它们virtualFields将使它们更易于使用。

于 2012-06-22T21:59:33.797 回答