列出订单和虚拟域

时间:2013-01-22 16:09:38

标签: cakephp drop-down-menu

我在cakephp中遇到了一件奇怪的事情。所以我试着先解释一下。

我有:

  • 两张桌子(员工和员工组)
  • 每个组的组长,这是一名员工
  • 一个虚拟字段,其中包含名字和姓氏
  • 按姓氏命名列表

职员/模型

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的内容,但它没有按顺序排列。例如。 姓氏,名字

  • 当我在字段之前放置数组顺序时,它会按顺序显示但是字段错误。例如。 名字姓氏


如何获取包含虚拟字段和正确顺序的列表。我不知道进一步,因为这个问题,我体重增加,头发松弛。帮助apreciated大时间!

欢呼endo

1 个答案:

答案 0 :(得分:2)

您在此处使用无效的数组结构。你需要注意数组如何在蛋糕中工作。一个带有命名键的数组(这里有多个数组)作为find()的第二个参数,例如。

find($type, $options);

所以它:

$locList = $this->Staff->find("list",
    array(
        'fields' => array('id', 'fullnameForList'),
        'order' => array('Staff.lastname ASC')
    )                              
);