我在两个模型之间建立了以下关系
我已经设置了一个表单,使用以下代码为每个故事选择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
)
奇怪的是它是完全相同的代码,只是查询其他模型,填充用户和流派之类的选择列表,它只是不起作用的故事类型。
有什么想法吗?欢呼声。
答案 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));