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
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
ja, weil die Abfrage im Moment Debuggen, ist nur ein Teil einer Unterabfrage.
Wenn Sie noch den code aus meiner Antwort
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser das Problem gelöst. Beachten Sie die
"IDENTITY"
Sorry. Ich habe keine Ahnung. Ich fand die Antwort irgendwo kann ich mich nicht erinnern, aber keine offizielle Dokumentation.
Ich fand die Dokumentation in der anderen Frage: Lehre DQL Wählt Beispiele
InformationsquelleAutor Reinherd
Müssen Sie Ihre Person FK-Definitionen, um eine PK-Feld (Eigenschaft).
Beispiel:
Habe ich ein Unternehmen:
documentoDocumento ( Entität, mit der die Beziehungen zwischen Dokumenten )
documento ( Dokument-info mit einem document_Type_Id FK)
documentTipo ( entity-Referenz mit einem document_type_id -> (mein Ziel !!) )
In documentDocument Person:
In der Dokument-Entität:
IN TABELLEN
Möchte ich eine Auswahl von Daten aus DocumentoDocumento und zeigen Sie tipo aus DocumentoTipo.
Dieser gibt einen Fehler zurück:
aber mit:
Bekomme ich einen dt2.id mit dem alias 'documentoTipoId'.
InformationsquelleAutor wagagt