从带有列表的cakephp find方法中检索小写数据

Retrieving data as lowercase from cakephp find method with list

我想使用 find 方法

从 cakephp 中检索数据作为小写列表

通常我使用此代码检索数据

$this->model->find('list', array('fields' => array('Area.id', 'Area.name'), 'recursive' => -1));

我的输出是

array(
   '1' => 'Dhaka'
   '2' => 'New Yourk'
   '3' => 'Japan'
)

但我想得到这样的输出

array(
   '1' => 'dhaka'
   '2' => 'new yourk'
   '3' => 'japan'
)

为了得到这个输出,我尝试了这个代码

$this->model->find('list', array('fields' => array('Area.id', 'LOWER(Area.name)'), 'recursive' => -1));

但它给了我一个数组。

array(
   '1' => 
   '2' => 
   '3' => 
)

我知道我可以用一个循环来完成这项工作。但是我不想在这里使用循环。

有没有没有循环的解决方案?

您需要在模型中设置一个$virtualFields 变量。设置如下:

public $virtualFields = array(
        'title' => "LOWER(Area.name)"
    );

并且在控制器中的查找查询中。请更改

$this->Area->find("all", array("fields" => array("Area.id", "Area.title")));

它会起作用..