【问题标题】:CakePHP: Multiple links to same modelCakePHP:指向同一模型的多个链接
【发布时间】:2013-03-18 06:00:55
【问题描述】:

假设每本书都有 AuthorA 和 AuthorB 字段。 这两个字段都是authors 表的外键。

具有字段的表作者:id |名字

带有字段的表格书籍:id |姓名 | a_author_id | b_author_id |

应该如何设置控制器、模型和视图,以便能够创建一本书,其中“作者 a”和“作者 b”的下拉列表都来自作者表? author-a(和 author-b)的表单输入在 Book 模型的“添加”视图中看起来如何?

【问题讨论】:

    标签: php cakephp cakephp-model


    【解决方案1】:

    您需要在 Book 模型中设置 2 个 belongsTo 关联,并为 Author 模型设置不同的别名。

    public $belongsTo = array(
        'AAuthor' => array(
            'className' => 'Author',
            'foreignKey' => 'a_author_id'
        ),
        'BAuthor' => array(
            'className' => 'Author',
            'foreignKey' => 'b_author_id'
        )
    );
    

    使用$this->Book->AAuthor->find('list') 获取作者列表并将数组设置为查看并使用Form->input() 中的'options' 键为a_author_idb_author_id 字段指定相同的数组。

    【讨论】:

    • 如果图书可以有多个作者(不限于固定数量),也可以使用HasAndBelongsToMany 关系。您必须更改数据库设计才能实现这一点,并且在排序/过滤书籍等时事情可能会更加复杂。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多