Cakephp 3找('列表')

Dir*_*irk 0 find cakephp-3.0

我想用MySql数据库中的数据预填充多个Checkbox表单.

我的数据库数据:

id  customer_id     language_id     preferred
1   10              150             yes
2   10              149             yes
Run Code Online (Sandbox Code Playgroud)

控制器"Preferredcustomerlanguages"中的查询

$clientlanguages = $this->Preferredcustomerlanguages
        ->find('list')
        ->select(['language_id'])
        ->where(['customer_id =' => $customer_id])
        ->where(['preferred =' => 'yes'])
        ->toArray()
    ;
Run Code Online (Sandbox Code Playgroud)

如果我用$ customer_id = 10开始查询,结果如下:

[
(int) 2 => (int) 2,
(int) 1 => (int) 1
]
Run Code Online (Sandbox Code Playgroud)

我以为查询会给我一个language_id的列表,我需要预先填写表单.

也许有人可以给我一个暗示,我想错了

mix*_*ble 5

如果要选择不同的字段displayField,可以使用list参数:

$clientlanguages = $this->Preferredcustomerlanguages
    ->find('list', [
        'keyField' => 'id',
        'valueField' => 'language_id'
    ])
    ->where(['customer_id =' => $customer_id])
    ->where(['preferred =' => 'yes'])
    ->toArray();
Run Code Online (Sandbox Code Playgroud)

https://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html#finding-key-value-pairs