CakeMP中没有填充AutoMagic选择框

Dan*_*iel 1 cakephp

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

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

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

echo $this->Form->input('Story.story_type_id', array('tabindex' => 2));
Run Code Online (Sandbox Code Playgroud)

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

$this->set('story_types', $this->Story->StoryType->find('list', array ('order' => 'title')));
Run Code Online (Sandbox Code Playgroud)

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

Array
(
    [1] => First Person
    [3] => Third Person
)
Run Code Online (Sandbox Code Playgroud)

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

有任何想法吗?干杯.

Rob*_*son 5

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

$this->set( 'storyTypes', $this->Story->StoryType->find( 'list', array( 'order' => 'title' ) ) );
Run Code Online (Sandbox Code Playgroud)

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

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