Hola
masterpuppet,
Entendido lo de el alias de "a"
Abajo dejo los Entities y la consulta que estoy probando:
Si pongo el "AS" antes de el alias del Entity me da el error:
Código:
1) Entities\Entity\ElementsTest::test_SelectElementsDelegations
Undefined index: Entities\Entity\Users
Y si pongo la consulta sin el "AS" para los alias me da el error:
Código:
1) Entities\Entity\ElementsTest::test_SelectElementsDelegations
Doctrine\ORM\Query\QueryException: [Syntax Error] line 0, col 89:
Error: Expected Doctrine\ORM\Query\Lexer::T_DOT, got 'u'
Hasta que no trabaje un poco con las consultas (si consigo que funcionen), los errores me suenan a chino, en fin... poco a poco.
La consulta:
Código PHP:
public function test_SelectElementsDelegations()
{
$em = $this->doctrineContainer->getEntityManager();
$dql = 'SELECT d.name, u.firstName '
.'FROM Entities\Entity\Delegations AS d '
.'JOIN Entities\Entity\Users AS u';
$query = $em->createQuery($dql);
$element = $query->getResult();
foreach( $element as $key => $value )
{
echo $element[$key]['name'] . ' ' . $element[$key]['firstName'] . "\n";
}
}
El Entity Delegations
Código PHP:
declare(ENCODING = 'utf-8');
//Lo pongo comentado por que no salen las barras invertidas
namespace /*Entities\Entity*/;
/**
* @Entity(repositoryClass="Entities\Entity\Repository\DelegationsRepository")
* @Table(name="data_delegations")
*/
class Delegations
{
/**
* @Column(name="del_id", type="integer", length=11, nullable=false)
* @Id
* @GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @Column(name="del_name", type="string", length=255, nullable=false)
*/
private $name;
/**
*
* @param \Doctrine\Common\Collections\Collection $users
*
* @OneToMany(targetEntity="Users",mappedBy="delegations", cascade={"persist","remove"})
*/
private $users;
/**
*
*/
public function __get($property)
{
return $this->$property;
}
public function __set($property, $value)
{
$this->$property = $value;
}
}
El Entity Users
Código PHP:
declare(ENCODING = 'utf-8');
//Lo pongo comentado por que no salen las barras invertidas
namespace /*Entities\Entity*/;
/**
* @Entity(repositoryClass="Entities\Entity\Repository\UsersRepository")
* @Table(name="data_users")
*/
class Users
{
/**
* @Column(name="use_id", type="integer", length=11, nullable=false)
* @Id
* @GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @Column(name="del_id", type="integer", length=11, nullable=false)
*/
private $delId;
/**
* @Column(name="use_first_name", type="string", length=100, nullable=false)
*/
private $firstName;
/**
* @var Delegations
*
* @ManyToOne(targetEntity="Delegations")
* @JoinColumns({
* @JoinColumn(name="del_id", referencedColumnName="del_id")
* })
*/
private $delegations;
/**
*
*/
public function __get($property)
{
return $this->$property;
}
public function __set($property, $value)
{
$this->$property = $value;
}
}
Gracias por todo, un saludo.