请记住,这不是我原来的代码,所以对我来说并不是很清楚,因为我迷失了,所以非常欢迎帮助。
我想显示另一个表中的行,但我遇到了一些问题。 当我使用
控制器中的:
$companies = $this->Users->Companies->find('list');
在视图中
echo $this->Form->input('companies._ids',['options' =>$companies,'multiple'=>'checkbox']);?>
我在这些基本复选框中获取了公司的所有表格ID和名称。
但是,由于我想使用每一行而不只是id和name,我尝试使用:
$companies = $this->Users->Companies->find('all');
但这会引发两个问题: 我的数据显示在这样的数组中:
{ "id": 2, "name": "Smith", "city": "Duisburg"}
和第二个问题:它跳过了第一行!我的ID为1,使用find('all')
时未显示,但在使用find('list')
时显示
那么如何获得每个值并以我想要的方式显示它们呢?
答案 0 :(得分:1)
如果您只想从列表中选择不同的字段,可以指定。
$query = $this->Users->Companies->find('list', [
'keyField' => 'slug',
'valueField' => 'title'
]);
$data = $query->toArray();
// Data now looks like
$data = [
'first-post' => 'First post',
'second-article-i-wrote' => 'Second article I wrote',
];