我是 Cake 的新手,并试图弄清楚这是怎么可能的,或者我是否以错误的方式去做。
Question hasMany Answer
Quiz HABTM Answer
所以我有以下表格:测验,答案,quizzes_answers
但是,有一种问题不符合标准。这类题需要记录一个image_id。所以我正在考虑将这些数据存储在关联表中,但我不确定如何使用 HABTM 设置:
'unique' => 'keepExisting'
这似乎无法保存我需要的数据。如果是这样,我将如何在视图中构造表单以保存这些数据?
或者...我应该创建另一个模型吗?如果我无法在关联表中成功保存 image_id,也许另一种方法是与 Quiz 模型和新模型建立另一个关联?
Quiz hasMany StudentAnswer
我将存储 quiz_id、question_id、answer_id 和 image_id 的位置。最后一个: image_id 将为 0 除非所问的问题是特定类型的。在这种情况下,我会删除上面的 HABTM 关联。
希望这很清楚。如有必要,我可以进一步详细说明。
更新:我可以为 quizzes_answers 表保存 quiz_id、answer_id 和 image_id。但是,如果进行了更多更新,则会删除先前的关联。而且我有独特的设置来保持模型中的存在。
public $hasAndBelongsToMany = array( // Quiz Model
'Answer' => array(
'className' => 'Answer',
'joinTable' => 'quizzes_answers',
'foreignKey' => 'quiz_id',
'associationForeignKey' => 'answer_id',
'unique' => 'keepExisting',
'dependent' => true,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
)
public $hasAndBelongsToMany = array( // Answer Model
'Quiz' => array(
'className' => 'Quiz',
'joinTable' => 'quizzes_answers',
'foreignKey' => 'answer_id',
'associationForeignKey' => 'quiz_id',
'unique' => 'keepExisting',
'dependent' => true,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
)