Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/cakephp/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cakephp 按顺序和virtualfield列出_Cakephp_Drop Down Menu - Fatal编程技术网

Cakephp 按顺序和virtualfield列出

Cakephp 按顺序和virtualfield列出,cakephp,drop-down-menu,Cakephp,Drop Down Menu,我在cakephp中遇到了一件奇怪的事情。所以我试着先解释一下 我有: 两张桌子(员工和员工组) 每个小组的组长是一名员工 包含名字和姓氏的虚拟字段 用户可以按姓氏对列表进行排序 员工/模特 public $virtualFields = array( [...] , 'fullnameForList' => 'CONCAT(Staff.lastname, ", ", Staff.firstname)', [...] 员工组/控制器中的功能 public

我在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时,我会得到virtualfield fullnameForList的内容,但它不是按顺序排列的。姓

  • 当我把数组的顺序放在字段之前时,它是按顺序显示的,但字段是错误的。姓


如何获得具有虚拟字段和正确顺序的列表。我不知道更多,因为这个问题,我体重增加,头发脱落。帮我一个大忙


干杯endo

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

find($type, $options);
因此:

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