Модифицировать содержащиеся модели во время выполнения - PullRequest
2 голосов
/ 23 января 2011

Я нахожусь в процессе создания плагина, который включает в себя поведение и несколько связанных моделей.Моя цель - сделать это как можно проще для разработчика, использующего поведение.В моем идеальном мире разработчик просто привязывает поведение к соответствующим моделям и настраивает его.

Поведение напрямую взаимодействует с одной из моделей, и на лету создается ассоциация hasOne, но другие модели содержат вспомогательные данные, которые важны.Я хотел бы, чтобы эта модель извлекла соответствующие данные, изменив модели Containable.

Короче:

  • MyModel (что actsAs Поведение) привязывается к модели верхнего уровня во время метода настройки поведения.
  • Поддерживающие модели напрямую связаны с моделью верхнего уровня
  • В MyBehavior::beforeFind, я хотел бы убедитьсячто данные вспомогательной модели возвращаются без необходимости запрашивать их у пользователя при вызове MyModel::find( ... ).

Я не нашел подходящих ключей, которые позволили бы мне изменять эти вещи во время выполнения.Может быть, это даже невозможно, учитывая, что я хочу по существу взаимодействовать с другим поведением (Containable).

Любые мысли будут оценены по достоинству.

1 Ответ

0 голосов
/ 24 января 2011

Этот код автоматически добавляет некоторое содержимое к находке перед ее запуском, вам просто нужно убедиться, что ваше поведение присоединено до того, как оно будет содержаться, иначе оно не будет работать. Обратный вызов beforeFind для поведения запускается только один раз, поэтому, если свойство вызывается, добавление чего-то подобного ничего не делает. Мне потребовалось некоторое время, чтобы все началось из-за этого.

https://github.com/infinitas/infinitas/blob/dev/core/contents/models/behaviors/contentable.php#L65

...