使用 Doctrine Record 设置外键

Posted

技术标签:

【中文标题】使用 Doctrine Record 设置外键【英文标题】:Set up foreign key using Doctrine Record 【发布时间】:2012-07-25 08:11:21 【问题描述】:

场景: 一个client可以生成很多requests

Request 模型中我有:

public function setTableDefinition() 

        $this->hasColumn('ref_no', 'varchar', 20);
        $this->hasColumn('client_id', 'int', 11);

    

    public function setUp() 
        $this -> setTableName('Request');
    

在数据库中client_id 是一个外键引用客户端表中的id

如何在客户端模型和请求模型中通过setUp() 方法与客户端建立one to many 关系?

谢谢,

帮助表示赞赏。

【问题讨论】:

【参考方案1】:

嗯,在客户端模型上试试这样的:

public function setUp() 
    parent::setUp(); 
    $this->hasMany('Request as requests', 
        array( 
            'refClass' => 'Request', 
            'local' => 'id', 
            'foreign' => 'client_id'
        )
    ); 


【讨论】:

以上是关于使用 Doctrine Record 设置外键的主要内容,如果未能解决你的问题,请参考以下文章

Doctrine 固定装置加载,有问题设置引用(外键)违反 -not-null 约束

在 save() 之后,Doctrine_Record 没有在对象中设置 PK

如何使Doctrine PostgreSQL外键约束DEFERRABLE

如何在 Doctrine 中使用 WHERE 作为 JOINed 表的外键?

Doctrine ORM:使用由外键组成的复合主键持久化集合

Symfony/Doctrine 类表继承和外键作为主键