用户之间的cakephp友谊将模型链接在一起

时间:2013-04-14 10:56:43

标签: php mysql cakephp-2.1 cakephp-appmodel

我需要什么:

类似facebook的友谊系统。

  1. User (A)User (B)
  2. 发送友谊请求
  3. User (B)确认了请求
  4. User (A)User (B)现在是朋友
  5. 我的问题:

    我很困惑如何解决这个问题。我在互联网上看了很多,但它并没有真正帮助我...

    我的问题:

    • CakePHP中有什么样的链接?它有和贝隆有多少?还是有很多?或者......?
    • 我如何正确地在数据库中实现它?
    • 如何在模型中链接它?

    我已做过的事情:

    表:users

    姓名:idusernamepassword,...

    users_users表:iduser_idfriend_idapproved

    型号:

    'User' => array(
                    'className' => 'User',
                    'joinTable' => 'users_users',
                    'foreignKey' => 'user_id',
                    'associationForeignKey' => 'friend_id',
                    'unique' => 'keepExisting',
                    'conditions' => '',
                    'fields' => '',
                    'order' => '',
                    'limit' => '',
                    'offset' => '',
                    'finderQuery' => '',
                    'deleteQuery' => '',
                    'insertQuery' => ''
                    );
    

1 个答案:

答案 0 :(得分:0)

“@tereško谢谢!但我收到错误:错误:发生内部错误”

首先回答您对“内部错误”的评论:

尝试在debug中将config.php设置为2您将意识到您将开始获得更多可理解的错误。

关于你的第一个问题:     1.你的关系基本上看起来像hasMAny,因为每个用户都有朋友。    HABTM也会在这里工作,但它要复杂得多。这个决定(使用什么关系)还取决于系统的其他部分 - 即您希望在其他部分使用此数据的内容和方式。     2.阅读here     3.阅读there again

HABTMhasMany through the jon model上的更多内容(如果您需要在使用与HABTM相同的想法时在连接表中存储任何其他数据)。

  

当HABTM变得复杂时该怎么办?

     

默认情况下,保存HasAndBelongsToMany关系时,Cake将删除所有行   保存新的之前在连接表上。例如,如果您有一个有10个孩子关联的俱乐部。然后,您将与2名儿童一起更新俱乐部。俱乐部只有2个孩子,而不是12个孩子。   另请注意,如果要为连接添加更多字段(创建时或元信息),可以使用HABTM连接表,但重要的是要了解您有一个简单的选项。   两个模型之间的HasAndBelongsToMany实际上是通过hasMany和belongsTo关联的三个模型的简写   关联。

您当前的数据库结构非常糟糕。我不明白为什么你需要一个名为table的表 - 或者我错了。如果你打算使用HABTM,你根本不需要创建连接模型 - cake会自动创建并填充它你。

HATBM的更多信息:

  1. Here
  2. There
  3. Here
  4. There
相关问题