【发布时间】:2012-02-26 01:36:09
【问题描述】:
我有一个功能性的 Symfony 项目。我需要在项目中添加多对多关系。
我有工作表和城市表。如何使用生成器添加此关系(我不想更改现有数据)? 我将在 Jobs 表单(添加、编辑、列表)中使用这种关系来将多个 Cities 分配给 Job。
【问题讨论】:
标签: database symfony1 many-to-many generator propel
我有一个功能性的 Symfony 项目。我需要在项目中添加多对多关系。
我有工作表和城市表。如何使用生成器添加此关系(我不想更改现有数据)? 我将在 Jobs 表单(添加、编辑、列表)中使用这种关系来将多个 Cities 分配给 Job。
【问题讨论】:
标签: database symfony1 many-to-many generator propel
您需要一个位于您的工作和城市之间的交叉引用表:
<table name="job_city" isCrossRef="true">
<column name="job_id" type="INTEGER" primaryKey="true" />
<column name="city_id" type="INTEGER" primaryKey="true" />
<foreign-key foreignTable="job">
<reference local="job_id" foreign="id" />
</foreign-key>
<foreign-key foreignTable="city">
<reference local="city_id" foreign="id" />
</foreign-key>
</table>
重新生成后,您将拥有一组新的类:JobCity、JobCityQuery 和 JobCityPeer 可供使用。您可以像这样向城市添加新工作:
$job = new Job();
// add job info ...
$job->save();
$city = CityQuery::create()->findOneByName("Austin");
$city->addJob($job);
$city->getJobs(); // returns PropelObjectCollection of Job objects
【讨论】: