Не знаю, что еще можно попробовать.
Я получаю такую ошибку:
[Семантическая ошибка] строка 0, столбец 10 рядом с 'idEntrada FROM': Ошибка: недопустимое выражение PathExpression. Должен быть StateFieldPathExpression.
Это мой запрос:
$query=$em->createQuery("SELECT mp.idEntrada FROM PAVPrimerAvisoBundle:ModeradoPor mp WHERE mp.idUsuario = $userId");
А это моя Сущность:
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;
}
Если я сделаю этот запрос:
$query=$em->createQuery("SELECT mp FROM PAVPrimerAvisoBundle:ModeradoPor mp WHERE mp.idUsuario = $userId");
Or
$query=$em->createQuery("SELECT mp.id FROM PAVPrimerAvisoBundle:ModeradoPor mp WHERE mp.idUsuario = $userId");
работает отлично. Это просто с mp.idEntrada.
Есть ли опечатка в моей сущности?
Изменить: тоже бывает с mp.idUsuario.
РЕДАКТИРОВАТЬ: Например, я сбрасываю запрос mysql, и он отображается следующим образом (когда 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
Я также могу сделать SELECT mp.id
Но никогда не используйте mp.idEntrada / mp.idUser
Entrada
(илиentrada_id
) вашейModeradoPor
сущности, гдеmp.idUsuario = $userId
? - person cheesemacfly   schedule 26.02.2013createQuery
вместо чего-то вроде$em->getRepository('MyBundle:ModeradoPor')->find($id)
? - person cheesemacfly   schedule 26.02.2013$query=$em->createQuery("SELECT mp.entrada_id FROM PAVPrimerAvisoBundle:ModeradoPor mp WHERE mp.idUsuario = $userId" );
должен работать, так ли это? - person cheesemacfly   schedule 26.02.2013Semantical Error] line 0, col 10 near 'entrada_id FROM': Error: Class PAV\PrimerAvisoBundle\Entity\ModeradoPor has no field or association named entrada_id
. Похоже, что entrada_id - это не то поле для поиска. Вот почему я используюentrada
, как я объявил, какprivate $entrada;
. Может я ошибаюсь? - person Reinherd   schedule 26.02.2013php app/console doctrine:generate:entities MyBundle
после изменения файла сущностей? - person cheesemacfly   schedule 26.02.2013Generating entities for namespace "PrimerAviso" [RuntimeException] Namespace "PrimerAviso" does not contain any mapped entities.
- person Reinherd   schedule 26.02.2013: Invalid PathExpression. Must be a StateFieldPathExpression.
- person Reinherd   schedule 26.02.2013SELECT IDENTITY (mp.entrada)
. Кто-нибудь1 понимает, почему? В любом случае, @cheesemacfly, не могли бы вы опубликовать это как ответ, чтобы я мог отметить его как решенное? Спасибо! - person Reinherd   schedule 26.02.2013SELECT IDENTITY (mp.entrada)
, определенно заслуживает одобрения! - person cheesemacfly   schedule 26.02.2013