1

我想用查询结果制作一个 SELECT 项目,我在视图中有这个:

echo $this->Form->input('person_id');

我希望该值是人的 id,并显示名字和姓氏的串联,如下所示:

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

为什么?

4

2 回答 2

1

这是一个已知问题。我发现并且我使用的最简单的解决方案(对于 v1.2)在这里 - http://nuts-and-bolts-of-cakephp.com/2008/09/04/findlist-with-three-or-combined -字段/

如果您使用 v1.3,您将在顶部看到指向食谱的链接。

于 2010-10-15T10:20:52.530 回答
1

对于 CakePHP 1.3,模型中有虚拟字段。检查此链接

于 2010-10-15T13:15:16.063 回答