hasMany“通过”关系和多选形式

时间:2012-03-10 07:44:48

标签: cakephp form-helpers

我正在运行cakephp 2.0.2并且我有以下关系

    Category hasMany CategoryWork
    Work hasMany CategoryWork
    CategoryWork belongs to Category,Work

每个蛋糕的文档都有经典的关系。

我有一个工作添加/编辑表单,其中包含一个允许用户选择多个类别的选择框。我遇到的问题是当用户编辑现有作品时,不会预先选择相关的类别。

我有以下代码来填充选择框,这实际上有效:

$categoryWorks = $this->CategoryWork->Category->listCategories();
$this->set(compact('categoryWorks'));

然后我的输入字段如下所示:

<?= $this->Form->input('CategoryWork', array('multiple' => true, 'label' => 'Categories')); ?>

这将填充选择字段,但不会使用工作的相关类别预先选择它。

所以,我可以解决这个问题。我只是为输入调用提供了一个选定的选项,我得到了我预先选择的类别。但我期待cakephp对我来说更神奇:)

我的理论是,蛋糕正在查看从工作查询返回的CategoryWork行的ID,并且它与下拉列表中填充的类别的ID不匹配。它需要查看category_id。

对此的想法?我觉得我快到了,我只是错过了一些东西来帮助蛋糕做点什么。

提前致谢!

1 个答案:

答案 0 :(得分:0)

您是否检查过hasAndBelongsToMany关系?

基本上它的工作方式如下:Category hasAndBelongsToMany使用CategoryWork工作