2013-07-05 49 views
0

是否可以在Propel中的關係中創建外部字段。主要目的是建立一種關係。Propel ORM - 與關係類型的多對多關係

例如,我們有聯繫人和機會。我需要聯繫人和機會之間的關係與這種關係類型。數據

例子:

​​

可以實現它在行走?

感謝

+0

我投票穿上保持。我們歡迎這樣的問題,但我們希望看到首先在尋找解決方案方面花費了多少努力。然而,兩個「如何」的問題已經被提出,兩者都已經被複制用於Doctrine和Propel,然後OP還沒有登錄幾個月。哎呀! – halfer

回答

3

絕對有可能的,只是列添加到您的cross_ref表:

<table name="contact_opportunity" isCrossRef="true"> 
    <column name="contact_id" type="INTEGER" primaryKey="true"/> 
    <column name="opportunity_id" type="INTEGER" primaryKey="true"/> 

    <!-- your new field --> 
    <column name="association_type" type="VARCHAR" required="true" /> 

    <foreign-key foreignTable="contact"> 
    <reference local="contact_id" foreign="id"/> 
    </foreign-key> 
    <foreign-key foreignTable="opportunity"> 
    <reference local="opportunity_id" foreign="id"/> 
    </foreign-key> 
</table> 

然後你就可以查詢它像別的:

$association = ContactOpportunityQuery::create() 
    ->filterByContact($contact) 
    ->filterByOpportunity($opportunity) 
    ->findOne(); 
$association->getAssociationType();