Я не знаю и не вижу до конца "данного случая". Вы до сих пор не ответили - как именно хотите работать с базой. Где будет вызываться ваш сервис - в контроллере? Контроллер каким образом запускается?
Если совсем на пальцах:
Вам скорее всего хватит простого flush() перед респонсом в контроллере. Если хотите добавлять данные, в свой сервис инжектите просто репозиторий, там делаете метод add(). Он делает persist(). Все. flush в контроллере закоммитит все изменения.
ff0xff, я конкретно про работу с базой спрашивал. Для выборок вам нужны репозитории. Чтобы закоммитить запросы, инжектится EntityManager (его очень желательно дальше контроллера не пихать, но тут зависит от вашей архитектуры). Как именно хотите работать с базой...
И еще, работа с базой - это не значит работать с доктриной!!!
1. Не нравится на русских форумах, зачем сюда пишете?
2. На русских форумах пытаются людям помочь.
3. Нельзя так делать в доктрине.
4. Я не буду пробовать записывать данные неправильным способом.
Wentixon, ivan99, ВСЕ выборки из базы только в репозиториях. Например findAvailableUserByEmail(string $email).
А по поводу сложных запросов, тоже в репозитории метод на нативном sql пишешь (я так делаю).
Первое что приходит в голову и очень в общих чертах, ты абстрагируешься от понятия базы данных, работаешь с объектами (с Entity если прямо). Flush - это не запись в базу, это конец бизнес-транзакции.
Еще к примеру с версии 2.5 появились Embedded объекты.
Очень крутая событийная модель!
и т.д... Надо пробовать! Так не поймешь всей прелести просто читая комменты!
Если правильно использовать доктрину - получаешь огромный кайф! (у меня так),
Слышны в адрес доктрины иногда стоны по скорости - но это такое.. Красивое и правильное проектирование важнее пары миллисекунд! Это сэкономит деньги в дальнейшем, когда проект вырастет, а Active Record будет вызывать рвотный рефлекс. В обычной жизни ты об этом даже не вспомнишь (80-95% случаев). А на сложных запросах тебе не нужна ORM!
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.