Vadim
Поймается
https://symfony.com/doc/current/doctrine/event_listeners_subscribers.html
Vadim
Ну все правильно, если напрямую нигде не дергаешь диспатчер, то надо тегнуть листенер.
Vadim
Это в ентити или контроллере?
Vadim
https://stackoverflow.com/questions/47313830/symfony-3-connection-to-multiple-databases
https://www.cloudways.com/blog/symfony-multiple-databases/
https://ourcodeworld.com/articles/read/137/how-to-use-more-than-one-database-using-doctrine-orm-in-symfony-3
https://github.com/symfony/symfony-docs/issues/9878
https://github.com/doctrine/DoctrineORMModule/issues/122
Vadim
Если у тебя сущности разных баз лежат в одном месте, то доктрина должна смотреть в это место, так что все правильно. Тебе просто нужно указать, какую базу использовать. Со вставкой данных так не получится, скорее всего, но с чтением - вполне.
Vadim
Ну да, $this->createQueryBuilder('entity')->getQuery()->getResult().
Vadim
Что пишет?
Vadim
$this->connection = $this->em->getManager('portal');
Vadim
Оно и не должно было помочь, зато показало, как правильно работать с конструктором. Ну и оно там не нужно, тебе уже доступен _em
Vadim
Тебе не надо к em обращаться, раз ты наследуешься от ServiceEntityRepository, делай
return $this->createQueryBuilder('entity')
->getQuery()
->getResult();
Vadim
$qb = $this->connection->createQueryBuilder();
return $qb->select('*')
->from('entity', 'e')->execute()->fetchAll();
Anonymous
Кто нибудь делал связка symfony+react ?
Anonymous
SPA или SSR ?
Anonymous
Блин, у меня взрыв мозга
Anonymous
АПИ
Anonymous
Макс, а ты роуты как получал ?
Anonymous
Или получаешь ))
Anonymous
просто переписывать все маршруты в реакт это грохнуться можно
Anonymous
ну а линки ты как делаешь то
Anonymous
Вопрос заключался в том, что например есть в сф роут /dashboard/settings/user/profile
Anonymous
и так до жопы
Anonymous
Ты же не будешь это все в ручную хреначить в реакт )))
Anonymous
Как ?
Anonymous
Так, у тебя реакт в паблике лежит ?
Anonymous
Все я отупел
Anonymous
А со стороны сео ? Спа же не даёт поисковикам инфу
Anonymous
)))))))
Anonymous
Anonymous
У меня истерика
Anonymous
Короче костыли
Anonymous
А если везде критично?
Anonymous
Тогда как быть
Anonymous
На каждой странице, которая автоматически генерируется
Anonymous
А по подробнее ?
Anonymous
Короче я понял, что лучше писать фронт часть так же на сф, а апи использовать только для мобильных приложений
Anonymous
Остальное это все костыли
Anonymous
Я конечно разочарован
Anonymous
Spa
Anonymous
Столько литературу перелопатить, чтобы потом взять и охереть
Anonymous
Ты про нативное веб приложение ?
Alexander
Не насколько много же магии в симфони и доктрине))
Vadim
Стоит. Это быстрее. Ну и плюс ты можешь через FetchMode привязать рид модель. То же самое, что и доктрина отдаёт.
Сергій 🍉
а почему долго? ты пока тут поспрашивал, погуглил, уже бы намапил шутк 10 ентитей. там же думать не надо. сколько у тебя всего таблиц?
Сергій 🍉
тем более можно нагенерить из схемы
Сергій 🍉
пока ты думаешь, кто-то херачит
Сергій 🍉
😊
Сергій 🍉
в ентити описываются релейшены, по которым потом джоины строятся, но можно и без релейшенов, если есть поля.
Сергій 🍉
джоин - это в запросе, в ентити - схема
Сергій 🍉
джоинов в ентити нет
Сергій 🍉
@ManyToOne - это релейшен
Сергій 🍉
описание связи
Сергій 🍉
если такое есть, то потом можно строить джоин по этой связи
->join('o.user')
Сергій 🍉
если нет связи, но есть поля в ентити, то тоже можно
->join(User::class, 'u', Join::with, 'o.userId = u.id')
Сергій 🍉
чем? поле 'userId' же все равно в ентити описать надо, разница в одной аннотации
Сергій 🍉
либо Column, либо JoinColumn
Сергій 🍉
после того как опишешь ентити, можешь мигрейшн дифф запустить, он тебе скажет в чем разница
Vadim
Ты не должен писать Column, если написал JoinColumn.
Vadim
Ты написал, что поле id у сущности UsersInfo - bigint, а потом в ссылке на это же поле пишешь, что оно integer.
Vadim
Не надо. Если ты будешь в шаблон выводить, то достанешь поля через коллекцию.
Vadim
В репе необязательно, а в ентити описать надо.
Сергій 🍉
findAll вернет массив ентити, ентити будут запроксированы, и когда ты полезешь за связанными ентити, доктрина сделает запрос, но можно настроить fetch="eager"
Сергій 🍉
findAll возвращает все записи таблицы, гедрированные в ентити
Сергій 🍉
как твой квери билдер связан с findAll ?
Vadim
Сергій 🍉
ну так получи, в чем проблема?
Vadim
Покажи полностью код и результат, который он вывел.
Vadim
Ошибка в другом, не в findAll
Vadim
Ты же уже получил, пишешь
Vadim
Сделай dump результата
Vadim
Или скрин и покажи
Vadim
А есть красивый дамп в профайлере симфони..
Vadim
Ну короче, все нормально тут, когда обратишься к полям ентити, доктрина отдаст то, что нужно.
Vadim
Тут и не будут данные с двух таблиц. Тебе же сказали, когда ты захочешь достать другую сущность по связи, доктрина создаст запрос и вернет результат, если он есть. Например, у тебя есть пост и комментарии под ним. Ты достаешь просто один пост и комментарии для него след образом:
{% for post in posts %}
{% for comment in post.comments %}
{{ comment.content }}
{% endfor %}
{% endfor %}
Alexander
Псс, парни в вашем диалоге проскользнул коммент что сущность можно сгенерировать автоматом из таблицы в базы, или я читанул не правильно?
Anonymous
можно
Alexander
Опа, сцыль можно?)
Alexander
Таблиц больше ста, ручками - это ппц)
Vadim
Anonymous
Маппинг импорт называется
Alexander
Спасибо, читану, не зря целый день Вас читал 😄