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 に答える