首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FormHelper选择框的问题

FormHelper选择框的问题
EN

Stack Overflow用户
提问于 2013-05-11 19:22:19
回答 1查看 138关注 0票数 0

我有以下表格

代码语言:javascript
复制
articles (Article model)
- id
- topic_id

articles_topics (ArticleTopic model)
- id

当我在ArticlesController add()中时,我成功地生成了不同主题的选择列表,如下所示:

代码语言:javascript
复制
$this->set('topics', $this->Article->ArticleTopic->find('list'));

我的文章add.ctp视图使用以下代码显示一个填充的选择列表:

代码语言:javascript
复制
echo $this->Form->input('topic_id', array('empty' => 'Select a Topic'));

这里一切都很好。我的问题是其他模式,如Sidebar和SidebarLocation。它们之间有着恰当的联系。

这些表是

代码语言:javascript
复制
sidebars (Sidebar model)
- id
- sidebar_location_id

sidebars_locations (SidebarLocation model)
- id

我尝试在我的SidebarsController add()中设置以下内容

代码语言:javascript
复制
$this->set('sidebar_locations', $this->Sidebar->SidebarLocation->find('list'));
$this->set('sidebarlocations', $this->Sidebar->SidebarLocation->find('list'));
$this->set('locations', $this->Sidebar->SidebarLocation->find('list'));

// I have also used compact for this

但是,侧栏add.ctp上的选择列表没有填充。它不是一个空数组。如果我把它打印出来,它就能用。

同样,我对表单使用了以下代码。

代码语言:javascript
复制
echo $this->Form->input('sidebar_location_id', array('empty' => 'Select a Location'));

我知道这个问题是因为这个专栏的标题是"sidebar_location_id".如果我将此重命名为"location_id“并将模型SidebarLocation.php重命名为Location.php,则可以工作,但我不能这样做,因为有多个其他模型具有关联的位置类型模型(即:公司模型与使用外键company_location_id的CompanyLocation模型相关联)。我需要这些单独的SidebarLocation和CompanyLocation模型来区分。

编辑:,我想回答我自己的问题,我可以用我的形式

代码语言:javascript
复制
echo $this->Form->input('sidebar_location_id', 
    array('type'=>'select','options'=> $sidebar_locations)
);

但我希望如果有人知道我能继续用我和其他模特一样的方法

代码语言:javascript
复制
echo $this->Form->input('sidebar_location_id');
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-11 20:02:10

鲍勒雷,

您需要以以下方式从控制器中设置您的值:

代码语言:javascript
复制
$sidebarLocations = $this->Sidebar->SidebarLocation->find('list');
$this->set(compact('sidebarLocations'));

在你的CTP里

代码语言:javascript
复制
echo $this->Form->input('sidebar_location_id');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16500869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档