1

私はcakephpで奇妙なことをしています。だから最初に説明しようと思います。

私は持っています:

  • 2 つのテーブル (staff と staffgroups)
  • スタッフであるグループごとのグループリーダー
  • 姓名を CONCAT する仮想フィールド
  • リストを姓で並べたい

スタッフ・モデル

public $virtualFields = array(
    [...] ,
    'fullnameForList' => 'CONCAT(Staff.lastname, ", ", Staff.firstname)',
    [...]

スタッフグループ/コントローラーの機能

public function getGroupLeaderListArray(){
    $this->loadModel('Staff');
    $loc_list = $this->Staff->find("list",
        array("fields" => array("id", 'fullnameForList')),
        array("order" => array("Staff.lastname ASC" ))                              
    );

    $this->set('GroupLeaderList',$loc_list);
}   

リストの出力

  • 上記のように getGroupLeaderListArray 関数を使用している場合、仮想フィールド fullnameForList の内容を取得しますが、順序が正しくありません。例えば。姓、名

  • フィールドの前に配列の順序を配置すると、順序どおりに表示されますが、フィールドが間違っています。例えば。名前苗字


仮想フィールドと正しい順序でリストを取得するにはどうすればよいですか? これ以上はわかりませんが、この問題のために体重が増え、髪の毛が抜けています. 大切な時間を助けてください!

乾杯遠藤

4

1 に答える 1

2

ここで無効な配列構造を使用しています。Cake での配列の動作に注意する必要があります。たとえば、find() の 2 番目のパラメーターとして、名前付きキーを持つ 1 つの配列 (ここでは複数の配列があります)。

find($type, $options);

っていうことは:

$locList = $this->Staff->find("list",
    array(
        'fields' => array('id', 'fullnameForList'),
        'order' => array('Staff.lastname ASC')
    )                              
);
于 2013-01-22T16:49:41.543 に答える