表单助手和列表的问题

时间:2010-10-15 09:41:26

标签: cakephp formhelper

我想用查询结果制作一个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>

为什么?

2 个答案:

答案 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