CakePHP-选项中是否可能显示一个包含多个字段的选择框?

CakePHP-选项中是否可能显示一个包含多个字段的选择框?,php,forms,cakephp,cakephp-1.3,Php,Forms,Cakephp,Cakephp 1.3,我希望用户能够从下拉列表中选择餐厅。我通过简单的方法实现了这一点: echo $this->Form->input( 'Restaurant', array('multiple'=>false, array('empty' => true))); 我遇到的问题是:一些餐馆有重复的名字,我需要一种方法让用户知道哪个是哪个。我希望在选择选项中包含ID和/或地址,如: <li value='62'>McDonalds (1234 Happy St) - #

我希望用户能够从下拉列表中选择餐厅。我通过简单的方法实现了这一点:

echo $this->Form->input(
    'Restaurant', array('multiple'=>false, array('empty' => true)));
我遇到的问题是:一些餐馆有重复的名字,我需要一种方法让用户知道哪个是哪个。我希望在选择选项中包含ID和/或地址,如:

<li value='62'>McDonalds (1234 Happy St) - #62</li>
<li value='63'>McDonalds (9876 French Fry Ln) - #63</li>
...etc
有办法做到这一点吗?我很明显可以用普通的HTML来做,但是。。。留在CakePHP会很好


提前感谢您的任何想法/建议/指导

当你加载你的餐厅时,你实际上得到了这样一个数组

array (
  ID => NAME,
  ID => NAME
)
基本上,它是一个关联数组,ID作为键,display字段作为值。因此,只要通过find操作或通过普通的PHP数组迭代修改该数组,就可以实现您的目标

编辑

所以你的答案是

在模型中,您将其定义为

var $virtualFields = array(    
    'rest_unique_name' => 'CONCAT(Restaurant.first_name, " ", Restaurant.address)'
);
在控制器中,您可以执行此操作

   $opts   = array(
            'fields'    => array('id', 'rest_unique_name')
   );
   $restaurants  = $this->Restaurant->find('list', $opts);

该查询有效-我在我的DB软件中尝试过它-但它没有填充下拉列表显示-ID仍然显示为值,但下拉列表对用户来说是空的。有什么想法吗?还有-我认为你的concat中的引号打破了字符串-所以我将它们改为双引号,它可以粘贴你问题中$restaurants数组的输出。还要粘贴视图集调用。@Dave,啊,一定是这样。我只是把它打进去了。将编辑我的答案我不是说它真的有效-我是说-当我更改引号时查询有效-但是下拉列表仍然是空的-抱歉混淆了。数组实际上是空的:数组[773]=>[774]=>[4558]=>[775]=>[776]=>