Ungültige PathExpression bei dem Versuch, eine Abfrage

Ich weiß nicht, was ich versuchen kann.

Ich bin immer diese Fehlermeldung:

[Semantische Fehler] Zeile 0, col 10 in der Nähe von "idEntrada AUS': Fehler: Ungültige PathExpression. Muss ein StateFieldPathExpression.

Dies ist meine Abfrage:

$query=$em->createQuery("SELECT mp.idEntrada FROM PAVPrimerAvisoBundle:ModeradoPor mp WHERE mp.idUsuario = $userId");

- Und das ist meine Person:

class ModeradoPor
{
/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var integer
 *
 * @ORM\ManyToOne(targetEntity="User")
 * @ORM\JoinColumn(name="user", referencedColumnName="id")
 */
private $idUsuario;

/**
 * @var integer
 *
 * @ORM\ManyToOne(targetEntity="Entrada")
 * @ORM\JoinColumn(name="idEntrada", referencedColumnName="id")
 */
private $idEntrada;

/**
 * @var integer
 *
 * @ORM\Column(name="votacio", type="integer")
 */
private $votacio;

/**
 * Get id
 *
 * @return integer 
 */
public function getId()
{
    return $this->id;
}

/**
 * Set idUsuario
 *
 * @param integer $idUsuario
 * @return ModeradoPor
 */
public function setIdUsuario($idUsuario)
{
    $this->idUsuario = $idUsuario;

    return $this;
}

/**
 * Get idUsuario
 *
 * @return integer 
 */
public function getIdUsuario()
{
    return $this->idUsuario;
}

/**
 * Set idEntrada
 *
 * @param integer $idEntrada
 */
public function setIdEntrada($idEntrada)
{
    $this->idEntrada = $idEntrada;
}

/**
 * Get idEntrada
 *
 * @return integer 
 */
public function getIdEntrada()
{
    return $this->idEntrada;
}

/**
 * Set votacio
 *
 * @param integer $votacio
 */
public function setVotacio($votacio)
{
    $this->votacio = $votacio;
}

/**
 * Get votacio
 *
 * @return integer 
 */
public function getVotacio()
{
    return $this->votacio;
}

Wenn ich diese Abfrage:

$query=$em->createQuery("SELECT mp FROM PAVPrimerAvisoBundle:ModeradoPor mp WHERE mp.idUsuario = $userId");

Oder

$query=$em->createQuery("SELECT mp.id FROM PAVPrimerAvisoBundle:ModeradoPor mp WHERE mp.idUsuario = $userId");

funktioniert perfekt. Es ist nur mit mp.idEntrada.

Ist es eine Tippfehler in meiner Person?

Edit: Passiert auch mit mp.idUsuario.

EDIT:
Zum Beispiel, ich dump der mysql query, und es ist gezeigt, wie diese (wenn SELECT mp)

SELECT m0_.id AS id0, m0_.votacio AS votacio1, m0_.user AS user2, m0_.entrada_id AS entrada_id3 FROM ModeradoPor m0_ WHERE m0_.user = 5

Kann ich auch noch AUSWÄHLEN, mp.id

Aber nie mp.idEntrada /mp.idUser

Ihr Ziel hier ist, um die damit verbundenen Entrada Objekt (oder die entrada_id) Ihre ModeradoPor Stelle mp.idUsuario = $userId?
Ich möchte nicht ganze Objekt, nur die id. Aber diese id ist nur ein foreign-key für Entrada Einheit.
Gibt es einen Grund, warum Sie verwenden createQuery über etwas wie $em->getRepository('MyBundle:ModeradoPor')->find($id)?
ja, weil die Abfrage im Moment Debuggen, ist nur ein Teil einer Unterabfrage.
Wenn Sie noch den code aus meiner Antwort $query=$em->createQuery("SELECT mp.entrada_id FROM PAVPrimerAvisoBundle:ModeradoPor mp WHERE mp.idUsuario = $userId" ); funktionieren sollte, ist es der Fall?

InformationsquelleAutor Reinherd | 2013-02-25

Schreibe einen Kommentar