Ответы пользователя по тегу Doctrine ORM
  • Как получить первую букву поля string с помощью DQL ?

    @myLizzarD
    PHP developer
    Предположения:
    - доктрина не понимает такую функцию. Решить проблему можно вот так
    - если вы вызываете getResult у полученной query, то в любом случае получите ошибку, ведь доктрина не знает, на какое поля замапить результат. Для этого вам необходимо поменять
    LEFT([поле],1)
    на

    LEFT([поле],1) as firstLetter

    и вызвать не getResult, а getArrayResult, например.
    Ответ написан
    Комментировать
  • Как организовать првильное кеширование сущностей в Doctrine 2?

    @myLizzarD
    PHP developer
    К сожалению запросы будут производится всегда, так устроена doctrine, ей необходимо сделать дозапрос сущности, чтобы знать о ее отношениях с другими сущностям. Как она может вернуть вам children-ов, если не знает, есть они у этой сущности или нет?
    Ответ написан
    Комментировать
  • Как реализовать пользовательскую вставку?

    @myLizzarD
    PHP developer
    doctrine передает явным образом все имеющие параметры, а недостающие устанавливает как null. Хочу выяснить, в чём загвоздка?

    Это дефолтное поведение доктрины, причем правильное поведение. Если у вас в аннотации над полями first_name и last_name не указано значение nullable - оно по умолчанию будет false, что на уровне бд запрещает вставку null значения. Если вы пишите руками sql запрос, не указывая эти поля при вставке, то при исполнении запроса вы должны получить предупреждение, что нет дефолтного значения для поля. Запись вставить, только на место first_name, last_name запишется пустая строка.
    Поэтому у вас есть 2 вариант: либо добавить nullable=true, либо ставить дефолтное значение для поля в конструкторе. Другого не дано.
    Ответ написан
    Комментировать
  • Общий рейтинг для разных типов entity в symfony 2?

    @myLizzarD
    PHP developer
    У вас не получится в данном случае сделать это нативно с помощью доктрины. По скольку связи между Vote и другими сущностями вы не создадите!
    Я вижу такое решение: по скольку вы используете JMSSerializerBundle для сериализации сущностей, то можете настроить подписчика, который будет на pre_serialize проверять тип сущности, доставать для нее рейтинг и добавлять в результат сериализации.
    Подробнее про это мы сможете прочитать тут
    Ответ написан
    Комментировать