Как правильно сохранять модели в Symfony2? - PullRequest
1 голос
/ 18 декабря 2011

Я был очень озадачен концепцией сохранения модели (сущности) в Symfony2.AFAIK, в Symfony2 нет ничего похожего на model_instance-> save ().Вместо этого он должен быть вызван в контроллере путем извлечения менеджера сущностей doctrine, а затем сохраните model_instance и очистите model_instance.экземпляры модели, которые будут сгенерированы из тела сообщения блога.Однако я не знаю, как я могу создать фабрику блогов, чтобы также сохранить эти теги и категории, вместо этого я должен вернуть эти экземпляры «Тег» и «Категория» из фабрики (которая все равно не сохранится) - тамя не могу сохранить блог и сохранить теги и категории в одном методе в блоге.

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

Iдействительно ценю, как решить проблемы выше.Спасибо!

Ответы [ 2 ]

3 голосов
/ 19 декабря 2011

Вы правы, Doctrine2 - это реализация шаблона DataMapper .Таким образом, концепции отличаются от ActiveRecord , который реализуется некоторыми другими ORM, такими как Doctrine1 и Propel.

По умолчанию, когда вы создаете сущность с некоторыми отношениями, вы должны сохранить своюсущности и его отношения вручную.Но вы можете изменить это поведение, активируя каскад постоянства:

http://www.doctrine -project.org / docs / orm / 2.1 / en / reference / working-with-association.html # transitive-persistence-каскадная-операция

2 голосов
/ 20 декабря 2011

В ваших комментариях вы упомянули тестирование. Вот библиотека кулинарной книги о проверке доктрины прямо здесь: http://symfony.com/doc/current/cookbook/testing/doctrine.html

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

Кроме того, Фабьен Потенсьер (ведущий разработчик Symfony) недавно выступил с докладом о том, что Symfony представляет собой набор связок, которые можно использовать независимо. Он покрыл основы того, как использовать большую часть связок. Вы можете посмотреть это здесь: http://symfony.com/video/Paris2011/583

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...