Ожидается доктрина 2 PlainValue

У меня возникли проблемы с выполнением Doctrine DQL Query. Это ошибка, которую она мне дает.

Doctrine\Common\Annotations\AnnotationException: [Syntax Error] Expected PlainValue, got 'integer' at position 13 in property Base\Session::$lifetime. 

Мой код выглядит так:

 $query = $em->createQuery("SELECT s FROM Base\Session s WHERE s.session = \"$id\""); 

Где $ id – текущий session_id. Моя модель выглядит так:

 namespace Base; /** @Entity @Table(name="session") */ class Session extends Skeleton { /** * @Id @Column(type="integer") * @GeneratedValue(strategy="AUTO") */ protected $id; /** @Column(length=32) */ protected $session; /** @Column(type=integer) */ protected $lifetime; /** @Column(type=integer) */ protected $modified; /** @Column(type="text") */ protected $data; } 

У вас есть две ошибки:

  1. Вы должны указать свои аннотации, то есть @Column (type = "integer") not @Colunn (type = integer). Doctrine \ Common \ Annotations \ AnnotationException вызывается, когда ваше сопоставление неверно. Это не имеет ничего общего с запросом.
  2. В вашем запросе должны использоваться подготовленные инструкции, т. Е.

    $ query = $ em-> createQuery ("SELECT s FROM Base \ Session s WHERE s.session =? 1"); $ query-> setParameter (1, $ id);