i'm started with Symfony 2 and i have problems. The return of my query with ORM returns an object that is not the way I hope. I'm using ORM correctly in my service?
I have this Service
class RequestListener{
protected $request;
protected $em;
public function __construct(RequestStack $request, EntityManager $em){
$this->request = $request->getCurrentRequest();
$this->em = $em;
}
public function onRequest()
{
if ( !$this->request->query->has('apikey') && !$this->request->headers->has('X-API-App-Token') ) {
throw new BadCredentialsException('No API key found');
}
$test = $this->em->getRepository("AutenticacaoBundle\Entity\Sistema")->findOneBy(array('id' => '1'));
echo "<pre>"; print_r($test);
die();
}
}
and my file service.yml looks like this:
services:
kernel.listener.request_listner:
class: AutenticacaoBundle\EventListener\RequestListener
arguments: ['@request_stack', '@doctrine.orm.entity_manager']
public: true
scope: request
tags:
- { name: kernel.event_listener, event: kernel.request, method: onRequest }
My entity:
class Sistema{
/**
* @var string
*
* @ORM\Column(name="nome", type="string", length=45, nullable=false)
*/
private $nome;
/**
* @var string
*
* @ORM\Column(name="autenticacao", type="string", length=10, nullable=false)
*/
private $autenticacao;
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="Procob\AutenticacaoBundle\Entity\Usuario", mappedBy="sistema")
*/
private $idUsuario;
/**
* Constructor
*/
public function __construct()
{
$this->idUsuario = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Set nome
*
* @param string $nome
* @return Sistema
*/
public function setNome($nome)
{
$this->nome = $nome;
return $this;
}
/**
* Get nome
*
* @return string
*/
public function getNome()
{
return $this->nome;
}
/**
* Set autenticacao
*
* @param string $autenticacao
* @return Sistema
*/
public function setAutenticacao($autenticacao)
{
$this->autenticacao = $autenticacao;
return $this;
}
/**
* Get autenticacao
*
* @return string
*/
public function getAutenticacao()
{
return $this->autenticacao;
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Add idUsuario
*
* @param \Procob\AutenticacaoBundle\Entity\Usuario $idUsuario
* @return Sistema
*/
public function addIdUsuario(\Procob\AutenticacaoBundle\Entity\Usuario $idUsuario)
{
$this->idUsuario[] = $idUsuario;
return $this;
}
/**
* Remove idUsuario
*
* @param \Procob\AutenticacaoBundle\Entity\Usuario $idUsuario
*/
public function removeIdUsuario(\Procob\AutenticacaoBundle\Entity\Usuario $idUsuario)
{
$this->idUsuario->removeElement($idUsuario);
}
/**
* Get idUsuario
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getIdUsuario()
{
return $this->idUsuario;
}
}
I hope to receive the result of the query formatted in the object but has more fields than I need, and the return is a huge object
returned object:
AutenticacaoBundle\Entity\Sistema Object(
[nome:AutenticacaoBundle\Entity\Sistema:private] => API ANTI FRAUDE
[autenticacao:AutenticacaoBundle\Entity\Sistema:private] => TOKEN
[id:AutenticacaoBundle\Entity\Sistema:private] => 1
[idUsuario:AutenticacaoBundle\Entity\Sistema:private] => Doctrine\ORM\PersistentCollection Object
(
[snapshot:Doctrine\ORM\PersistentCollection:private] => Array
(
)
[owner:Doctrine\ORM\PersistentCollection:private] => AutenticacaoBundle\Entity\Sistema Object
*RECURSION*
[association:Doctrine\ORM\PersistentCollection:private] => Array
(
[fieldName] => idUsuario
[targetEntity] => AutenticacaoBundle\Entity\Usuario
[mappedBy] => sistema
[type] => 8
[inversedBy] =>
[isOwningSide] =>
[sourceEntity] => AutenticacaoBundle\Entity\Sistema
[fetch] => 2
[cascade] => Array
(
)
[isCascadeRemove] =>
[isCascadePersist] =>
[isCascadeRefresh] =>
[isCascadeMerge] =>
[isCascadeDetach] =>
[orphanRemoval] =>
)
[em:Doctrine\ORM\PersistentCollection:private] => Doctrine\ORM\EntityManager Object
(
[config:Doctrine\ORM\EntityManager:private] => Doctrine\ORM\Configuration Object
(
[_attributes:protected] => Array
(
[entityNamespaces] => Array
(
[AutenticacaoBundle] => AutenticacaoBundle\Entity
)
[metadataCacheImpl] => Doctrine\Common\Cache\ArrayCache Object
(
[data:Doctrine\Common\Cache\ArrayCache:private] => Array
(
[DoctrineNamespaceCacheKey[sf2orm_default_489a22580630c4a54db185d7439d487df1380fa671bd29dc59b5de5271068a56]] => 1
[sf2orm_default_489a22580630c4a54db185d7439d487df1380fa671bd29dc59b5de5271068a56[AutenticacaoBundle\Entity\Sistema$CLASSMETADATA][1]] => Doctrine\ORM\Mapping\ClassMetadata Object
(
[name] => AutenticacaoBundle\Entity\Sistema
[namespace] => AutenticacaoBundle\Entity
[rootEntityName] => AutenticacaoBundle\Entity\Sistema
[customGeneratorDefinition] =>
[customRepositoryClassName] =>
[isMappedSuperclass] =>
[parentClasses] => Array
(
)
[subClasses] => Array
(
)
[namedQueries] => Array
(
)
[namedNativeQueries] => Array
(
)
[sqlResultSetMappings] => Array
(
)