【问题标题】:CakePHP: Saving HABTM relation using multiple autocomplete fieldsCakePHP:使用多个自动完成字段保存 HABTM 关系
【发布时间】:2012-10-24 11:07:32
【问题描述】:

我使用的是 CakePHP 2,我有两个模型:通过 HABTM 关系连接的问题和主题。 在我的“添加”问题表单中,我有可变数量的自动完成字段,这些字段应该用于将(现有)主题与用户正在添加的问题结合起来。

我想要的是:当我保存我的问题时,与所选主题的关系也会自动保存。 有人可以告诉我如何实现这一目标吗?最好我想通过正确命名我的表单帮助器字段来自动处理其中的大部分内容,而无需我在控制器中执行手动更新。这可能吗?

它看起来像这样吗:

<?php echo $this->Form->input('RelatedTopic.0.topic_id'); ?>
<?php echo $this->Form->input('RelatedTopic.1.topic_id'); ?>
..

这是我在问题模型中的关系:

$hasAndBelongsToMany= array(
  'RelatedTopic' => array(
    'className' => 'Topic',
    'joinTable' => 'questions_topic',
    'foreignKey' => 'question_id',
    'associationForeignKey' => 'topic_id',
  )
);

【问题讨论】:

    标签: cakephp autocomplete cakephp-2.1 has-and-belongs-to-many


    【解决方案1】:

    您是要添加与问题相关的新主题,还是有预先确定的问题主题列表?

    【讨论】:

    • 是的,我想我在我的问题中提到了这一点。主题列表是预先确定的,表单不应添加任何主题,仅将它们与“问题”模型相关联。
    • 然后使用多选或多选框获取输入。 echo $this-&gt;Form-&gt;input('Question.RelatedTopic',array('label'=&gt;'At least one Topic', 'type'=&gt;'select', 'multiple'=&gt;true));
    • .. 你读过我的问题吗?我正在使用自动完成字段。自动完成多选或多复选框输入如何工作?
    • 不清楚您是否要求在 habtm 上自动完成,特别是因为您有表单输入。因此,如果您有预先确定的值,我会在保存之前在控制器中设置这些值。尝试做这样的事情$this-&gt;data['RelatedTopic'][0]['RelatedTopic']['id']=$firsttopic_id; $this-&gt;data['RelatedTopic'][1]['RelatedTopic']['id']=$secondtopic_id;
    猜你喜欢
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多