【问题标题】:phpcake HABTM users has many friends, table naming conventionphpcake HABTM 用户有很多朋友,表命名约定
【发布时间】:2011-05-02 21:28:59
【问题描述】:

我正在建模一个社交网络风格的网站,人们可以在其中将其他人添加到他们的联系人列表中,我想将此关系建模为同一表用户上的 HABTM 关系,但根据 http://book.cakephp.org/view/1044/hasAndBelongsToMany-HABTM 我必须像这样创建表:

CREATE TABLE IF NOT EXISTS `users_users` (
  `users_users.id` int(11) NOT NULL AUTO_INCREMENT,
    `users_users.user_id` int(11) NOT NULL ,
      `users_users.user_id` int(11) NOT NULL ,
  PRIMARY KEY (`users_users.id`)

) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=9

请帮忙,我怎样才能避免重复?

【问题讨论】:

    标签: php cakephp naming has-and-belongs-to-many convention


    【解决方案1】:

    对于引用同一张表的 HABTM 关系,您需要更改外键的名称。定义users_users,包含三个字段:iduser_idfriend_id

    在您的用户模型中,设置关系,分配一个显式的foreignKey和associationForeignKey:

    var $hasAndBelongsToMany = array(
        'Friend' => array(
            'joinTable' => 'users_users',
            'className' => 'User',
            'foreignKey' => 'user_id',
            'associationForeignKey' => 'friend_id'
        )
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      • 2013-02-10
      相关资源
      最近更新 更多