В настоящее время я работаю над модулем миграции, где я использую разные источники XML (поставляемые внешним поставщиком) для импорта программы кинотеатра. Я получаю отдельные файлы для кино, театров и расписание сеансов, как это (упрощенный):Восстановить отношения между узлами при использовании модуля миграции в Drupal 7
<Movies>
<Movie>
<movieid>14652</movieid>
<title>Movie Title</title>
</Movie>
</Movies>
<Theaters>
<Theater>
<theaterid>75102</theaterid>
<description>Blabla</description>
</Theater>
</Theaters>
<Showtimes>
<Showtime>
<showtimeid>147001169</showtimeid>
<movieid>14652</movieid>
<theaterid>75102</theaterid>
<date>2013-12-02 20:15</date>
</Showtime>
</Showtimes>
Я уже в состоянии импортировать все необходимые данные и создавать узлы для каждого типа. ЗА ИСКЛЮЧЕНИЕМ отношений между ними. Я не уверен, какое поле я должен использовать для этого. В настоящее время я использую ссылки на сущности, но я не знаю, как правильно их настроить, и если они являются лучшим выбором для такого типа приложений. План состоит в том, чтобы отображать информацию о шоу в зависимости от фильмов или театров (например, показывать все фильмы, которые в настоящее время воспроизводятся в выбранном театре, или показать все кинотеатры для данного фильма. Другой связанный вопрос. Я должен переписать идентификаторы узлов (nid) с указанными идентификаторами из XML (в это сохранить?) или я создавать различные поля для них
заранее спасибо за любую помощь Если какой-либо требуется дополнительная информация, я отвечу сразу,?!)
с наилучшими пожеланиями, Satara
Решения
Я просто должен был использовать sourceMigration() функции с помощью ключа миграции, определенного в массиве «Миграция» в режиме вытеснения migrate_api (файл) в качестве параметра). Теперь идентификаторы получить правильно отображаются в полях entity_refernce:
$this->addFieldMapping('field_showtime_movie', 'movieid')->xpath('movieid')->sourceMigration('Movie');
$this->addFieldMapping('field_showtime_theater', 'theaterid')->xpath('theaterid')->sourceMigration('Theater');
Спасибо за ваш быстрый ответ. Теперь он работает. Я решил продолжить использование модуля entity_reference, потому что он все еще находится в активной разработке, в отличие от node_reference. – Satara
Его все еще активно поддерживается. Теперь это дополнительный модуль ссылок https://drupal.org/project/references, но да, его больше не разрабатывают как стабильное. – nickwshaw
В [примечаниях к выпуску ссылок 7.x-2.0] (https://drupal.org/node/985370/release) они говорят, что в ближайшем будущем это будет наиболее непримиримо устаревшим, и что entity_reference следует, вероятно, сначала рассмотреть свежие проекты D7. Поскольку эта запись довольно старая, возможно, они решили ее сохранить. – Satara