Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Doctrine 同一类的多对多学说_Doctrine - Fatal编程技术网

Doctrine 同一类的多对多学说

Doctrine 同一类的多对多学说,doctrine,Doctrine,我正在尝试在我正在构建的应用程序中创建一个类似社交网络的功能,并希望将一个朋友与另一个朋友关联起来 假设我有: Friend: connection: doctrine tableName: friend columns: id: type: integer(8) primary: true autoincrement: true name: type: string(75) notnull: true 我

我正在尝试在我正在构建的应用程序中创建一个类似社交网络的功能,并希望将一个朋友与另一个朋友关联起来

假设我有:

Friend:
  connection: doctrine
  tableName: friend
  columns:
    id:
      type: integer(8)
      primary: true
      autoincrement: true
    name:
      type: string(75)
      notnull: true
我如何建立一种多对多的关系,将朋友与自己联系起来

提前感谢您的帮助。

从文档中:

等巢关系

对等嵌套关系是完美的 适合表达关系 类引用自身和 引用类中的列 他们是平等的

这意味着在获取相关的 记录哪一列并不重要 在引用类中,具有主 主类的键值

前面的条款可能很难解释 所以,让我们举个例子。我们 定义一个名为User的类,该类可以 我有很多朋友。注意这里我们是如何 使用“相等”选项

//models/User.php

这里是YAML格式的相同示例。您可以在YAML架构>文件一章中阅读有关YAML的更多信息:

从文档中:

等巢关系

对等嵌套关系是完美的 适合表达关系 类引用自身和 引用类中的列 他们是平等的

这意味着在获取相关的 记录哪一列并不重要 在引用类中,具有主 主类的键值

前面的条款可能很难解释 所以,让我们举个例子。我们 定义一个名为User的类,该类可以 我有很多朋友。注意这里我们是如何 使用“相等”选项

//models/User.php

这里是YAML格式的相同示例。您可以在YAML架构>文件一章中阅读有关YAML的更多信息:

class User extends BaseUser
{
    public function setUp()
    {
        parent::setUp();

        // ...

        $this->hasMany('User as Friends', array(
                'local'    => 'user1',
                'foreign'  => 'user2',
                'refClass' => 'FriendReference',
                'equal'    => true,
            )
        );
    }
}
// models/FriendReference.php
class FriendReference extends Doctrine_Record
{
    public function setTableDefinition()
    {
        $this->hasColumn('user1', 'integer', null, array(
                'primary' => true
            )
        );

        $this->hasColumn('user2', 'integer', null, array(
                'primary' => true
            )
        );
    }
}
---
# schema.yml

# ...
User:
# ...
  relations:
    # ...
    Friends:
      class: User
      local: user1
      foreign: user2
      refClass: FriendReference
      equal: true

FriendReference:
  columns:
    user1:
      type: integer
      primary: true
    user2:
      type: integer
      primary: true