Symfony Propel многие ко многим добавить - PullRequest
0 голосов
/ 26 февраля 2012

У меня есть функциональный проект Symfony. Мне нужно добавить в проект отношения «многие ко многим».

У меня есть таблица вакансий и таблица городов. Как я могу добавить эти отношения с помощью Generator (я не хочу изменять существующие данные)? Я буду использовать это отношение в формах заданий (добавление, редактирование, список) для назначения нескольких городов для задания.

1 Ответ

0 голосов
/ 08 января 2013

Вам понадобится таблица перекрестных ссылок между вашими рабочими местами и городами:

<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
...