我想用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的列表,我需要预先填写表单.
也许有人可以给我一个暗示,我想错了
如果要选择不同的字段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