我想用查询结果制作一个SELECT项,我在视图中有这个:
echo $this->Form->input('person_id');
我希望该值为该人的id,并显示firstname和lastname的串联,如下所示:
<select id="ResearchGroupPersonId" name="data[ResearchGroup][person_id]">
<option value="2">lastname2 firstname2</option>
<option value="1">lastname1 firstname1</option>
</select>
我试过这是控制器没有成功
$people = $this->ResearchGroup->Person->find('list',
array(
'fields' => array('Person.id', 'CONCAT (Person.lastname, " ", Person.firstname) AS fullname'),
'order' => array('Person.lastname'),
)
);
sql日志显示行已被检索,它们只是不显示。它的工作原理是连接,这个:
$people = $this->ResearchGroup->Person->find('list',
array(
'fields' => array('Person.id', 'Person.lastname'),
'order' => array('Person.lastname'),
)
);
给出了这个
<select id="ResearchGroupPersonId" name="data[ResearchGroup][person_id]">
<option value="2">Doe</option>
<option value="1">Ray</option>
</select>
为什么?
答案 0 :(得分:1)
这是一个已知的问题。我找到的最简单的解决方案(我用的是v1.2) - http://nuts-and-bolts-of-cakephp.com/2008/09/04/findlist-with-three-or-combined-fields/。
如果您使用v1.3,您将在顶部看到指向食谱的链接。
答案 1 :(得分:1)
对于CakePHP 1.3,模型中有虚拟字段。查看this link