CakeMP中没有填充AutoMagic选择框

时间:2010-11-15 20:56:22

标签: cakephp

我在两个模型之间建立了以下关系

  • 故事属于故事类型
  • StoryType有很多故事

我已经设置了一个表单,使用以下代码为每个故事选择StoryType:

echo $this->Form->input('Story.story_type_id', array('tabindex' => 2));

在控制器中使用此代码填充列表

$this->set('story_types', $this->Story->StoryType->find('list', array ('order' => 'title')));

但它没有用任何东西填充选择框。我知道find()选项正常工作,因为在控制器中进行调试会产生这样的结果:

Array
(
    [1] => First Person
    [3] => Third Person
)

奇怪的是它是完全相同的代码,只是查询其他模型,填充用户和流派之类的选择列表,它只是不起作用的故事类型。

有什么想法吗?欢呼声。

2 个答案:

答案 0 :(得分:5)

您没有提到您正在使用的CakePHP版本,但请尝试设置storyTypes而不是story_types

$this->set( 'storyTypes', $this->Story->StoryType->find( 'list', array( 'order' => 'title' ) ) );

较早版本的CakePHP(1.3之前版本)修改了将变量名称设置为headlessCamelCase,即使您使用的是1.3.x,也可能会有一些基础结构延迟。它有点广泛,但它很容易测试,似乎似乎合理这可能是你问题的根源。

我很想知道你发现了什么。

答案 1 :(得分:1)

这有点hacky,但我认为它会起作用:

echo $this->Form->input('Story.story_type_id', array('tabindex' => 2, 'options' => $story_types));