Слияние записей в CakePHP - PullRequest
       21

Слияние записей в CakePHP

1 голос
/ 28 апреля 2010

Допустим, у меня есть Модель, например, Пользователь, и я хочу объединить два экземпляра этой Модели, скажем, объединить User2 с User1. Явно это то, что я имею в виду:

  1. Если поле User1 уже заполнено, оно должно остаться прежним

  2. Если поле отсутствует в User1, но присутствует в User2, его следует скопировать

  3. Если SomeModel BelongsTo User, каждый экземпляр SomeModel, указывающий на User2, должен быть изменен, чтобы указывать на User1

  4. То же самое, если SomeModel HasAndBelongsToMany User

  5. Если у SomeModel HasMany User и SomeModel1 есть User2, но нет другого экземпляра с User1, его следует изменить, чтобы SomeModel1 имел User1 вместо

  6. Если SomeModel HasMany User, SomeModel1 имеет User1, а SomeModel2 имеет User2 ... ну, я не уверен, что здесь, я думаю, единственное решение - отказаться от SomeModel2, поскольку User1 может принадлежать только одной SomeModel.

Наконец, User2 должен быть удален.

Есть ли способ автоматизировать это? Может быть Поведение? Если нет, я мог бы подумать о его создании, так как он мне очень понадобится.

1 Ответ

1 голос
/ 31 августа 2011

Мы сделали поведение Merge для этой цели еще в 2008 году.

Для корректной работы с последней стабильной версией CakePHP может потребоваться некоторая настройка, но вы можете найти ее здесь

...