Doctrine 2 PlainValue ожидается

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

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;
}
12
задан Rene Terstegen 17 August 2010 в 07:14
поделиться

1 ответ

Здесь две ошибки:

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

  2. В вашем запросе должны использоваться подготовленные операторы, например

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

25
ответ дан 2 December 2019 в 06:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: