是否可以在Propel中创建关系中的外部字段。主要目的是建立一种关系。
例如,我们有联系人和机会。我需要一种关系类型的联系人和机会之间的关系。
数据示例:
contact_id | opportunity_id | association_type
------------------------------------------------------
<contact_id> | <opportunity_id> | <Executive Sponsor>
<contact_id> | <opportunity_id> | <Business Evaluator>
可以在Propel中实现吗?
由于
答案 0 :(得分: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();