我在执行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;
}
你有两个错误:
@Column(type="integer")
而不是@Column(type=integer)
。映射错误时抛出Doctrine \ Common \ Annotations \ AnnotationException。这与查询无关。$query = $em->createQuery("SELECT s FROM Base\Session s WHERE s.session = ?1");
$query->setParameter(1, $id);