Lehre 2 PlainValue erwartet
-
29-09-2019 - |
Frage
Ich habe Probleme, eine Lehre DQL-Abfrage ausgeführt wird. Dies ist der Fehler, den es gibt mir.
Doctrine\Common\Annotations\AnnotationException: [Syntax Error] Expected PlainValue,
got 'integer' at position 13 in property Base\Session::$lifetime.
Mein Code sieht wie folgt aus:
$query = $em->createQuery("SELECT s FROM Base\Session s WHERE s.session = \"$id\"");
Wo $ id die aktuelle Sitzungs_ID ist. Mein Modell sieht aus wie:
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;
}
Lösung
Sie haben zwei Fehler in dieser:
-
Sie haben Ihre Anmerkungen zu verdoppeln zitieren, das heißt
@Column(type="integer")
nicht@Column(type=integer)
. Lehre \ Common \ Annotations \ AnnotationException wird ausgelöst, wenn Ihre Zuordnung falsch ist. Das hat nichts mit der Frage zu tun. -
Ihre Anfrage vorbereitete Anweisungen verwendet werden soll, d.
$query = $em->createQuery("SELECT s FROM Base\Session s WHERE s.session = ?1"); $query->setParameter(1, $id);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow