我正在尝试从简单表中检索数据并填充选择字段表单。 有两个表,缩略语和主题。
目前我有:
在我的acronyms_controller(方法add())中:
$topics = $this->Acronym->Topic->find('list');
$this->set(compact('topics'));
在我的首字母缩略词(模型)中:
var $belongsTo = array(
'Topic' => array(
'className' => 'Topic',
'foreignKey' => 'topic_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
在我的主题模型中:
var $hasMany = array(
'Acronym' => array(
'className' => 'Acronym',
'foreignKey' => 'topic_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);
在我的缩略语添加视图中:
<?php echo $this->Form->input('topic_id'); ?>
我不知道为什么这不起作用(它不是在select字段中检索Topic数据)。我下载了一个简单的应用程序,并做了相同的练习,它做得很好。我不知道我错过了什么。
如果我有你的帮助,我将不胜感激。
答案 0 :(得分:0)
您的代码似乎都是正确的。如果主题名称没有出现在选择字段中,那么可能是因为数据库表中的字段不正确。
对于Cake,使用主题名称列表自动使用选择,Topic
表中必须有一个名为name
的字段。
否则,您的控制器中必须存在与此相冲突的其他内容,但我需要查看整个add()
方法来确定这一点。