Ответы пользователя по тегу Symfony
  • Как осуществить поиск по реляционному полю в Doctrine?

    @D3lphi
    Когда вы работаете с ORM и пишете запросы с помощью query builder'а (или DQL), для вас не существует такого понятия как "столбец". Вы работаете с маппингом таблиц на сущности. Следовательно, в вашем распоряжении имеются поля сущности. В query builder'е вы обращаетесь к полям сущности, а не к столбцам таблицы. Чтобы обратиться к внешнему ключу сущности (например, составить условие без джоина отношения), используется встроенная в DQL функция IDENTITY(). В вашем случае это будет выглядеть примерно так:
    $query = $records->createQueryBuilder('d')
                    ->orderBy('d.id',  'ASC')
                    ->where('IDENTITY(d.version) = :version')
                    ->setParameter('version', $version)
                    ->getQuery();
    Ответ написан
    Комментировать
  • Symfony как добраться до doctrine из static methode?

    @D3lphi
    Единственный человеческий вариант - передать доктрину (видимо, имеется ввиду, entity manager) в качестве аргумента этого статического метода.
    Ответ написан
  • Как правильно использовать сервисы в Симфони4?

    @D3lphi
    Использовать нужно первый вариант. В нем мы реализуем паттерн внедрение зависимостей (dependency injection), в то время как во втором случае - паттерн (скорее даже, анти) - локатор служб (service locator). Локатор служб скрывает зависимости классов/методов и создает излишнюю связанность кода, который теперь зависит от этого самого контейнера. Становится неудобно мокать зависимости для тестирования.
    Ответ написан
    Комментировать
  • Symfony форма сортировки без создания таблицы в БД?

    @D3lphi
    Я так понимаю, создать форму и "привязать" к ней Entity, которая не относится к ORM? Конечно, можно.
    Ответ написан
    Комментировать
  • Где искать эксепшн?

    @D3lphi
    В директории var/logs хранятся логи, в которых, помимо всего прочего, можно посмотреть файл и строку в котором было брошено исключение, а также увидеть stack trace.
    Ответ написан
    Комментировать