显示例外:
"No mapping file found named '/Users/josedelrio/AimerAgronomia/src/Aimer/PlataformaBundle/Resources/config/doctrine/ExplotacionRepository.orm.yml' for class 'Aimer\PlataformaBundle\Entity\ExplotacionRepository".
当我尝试调用Repository方法时会发生这种情况。我不明白为什么要求该文件。
实体代码:
#src/AimerPlataformaBundle/Resources/config/doctrine/Explotacion.orm.yml
Aimer\PlataformaBundle\Entity\Explotacion:
type: entity
table: Explotacion
repositoryClass: Aimer\PlataformaBundle\Entity\ExplotacionRepository
id:
id:
type: integer
generator: { strategy: AUTO }
fields:
nombre:
type: string
length: 100
kgCuota:
type: float
manyToOne:
idParroquia:
targetEntity: Parroquia
joinColumn:
name: idParroquia
referencedColumnName: id
nullable: false
unique: FALSE
使用doctrine:generate:entities
Explotacion.php
<?php
namespace Aimer\PlataformaBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Explotacion
*/
class Explotacion
{
/**
* @var integer
*/
private $id;
/**
* @var string
*/
private $nombre;
/**
* @var integer
*/
private $idTecnico;
/**
* @var integer
*/
private $idServizo;
/**
* @var string
*/
private $nif;
/**
* @var string
*/
private $cea;
/**
* @var string
*/
private $lugar;
/**
* @var float
*/
private $sau;
/**
* @var integer
*/
private $numCabezas;
/**
* @var float
*/
private $haMillo;
/**
* @var float
*/
private $haHerba;
/**
* @var float
*/
private $kgCuota;
/**
* @var \Aimer\PlataformaBundle\Entity\Parroquia
*/
private $idParroquia;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set nombre
*
* @param string $nombre
* @return Explotacion
*/
public function setNombre($nombre)
{
$this->nombre = $nombre;
return $this;
}
/**
* Get nombre
*
* @return string
*/
public function getNombre()
{
return $this->nombre;
}
/**
* Set idTecnico
*
* @param integer $idTecnico
* @return Explotacion
*/
public function setIdTecnico($idTecnico)
{
$this->idTecnico = $idTecnico;
return $this;
}
/**
* Get idTecnico
*
* @return integer
*/
public function getIdTecnico()
{
return $this->idTecnico;
}
/**
* Set idServizo
*
* @param integer $idServizo
* @return Explotacion
*/
public function setIdServizo($idServizo)
{
$this->idServizo = $idServizo;
return $this;
}
/**
* Get idServizo
*
* @return integer
*/
public function getIdServizo()
{
return $this->idServizo;
}
/**
* Set nif
*
* @param string $nif
* @return Explotacion
*/
public function setNif($nif)
{
$this->nif = $nif;
return $this;
}
/**
* Get nif
*
* @return string
*/
public function getNif()
{
return $this->nif;
}
/**
* Set cea
*
* @param string $cea
* @return Explotacion
*/
public function setCea($cea)
{
$this->cea = $cea;
return $this;
}
/**
* Get cea
*
* @return string
*/
public function getCea()
{
return $this->cea;
}
/**
* Set lugar
*
* @param string $lugar
* @return Explotacion
*/
public function setLugar($lugar)
{
$this->lugar = $lugar;
return $this;
}
/**
* Get lugar
*
* @return string
*/
public function getLugar()
{
return $this->lugar;
}
/**
* Set sau
*
* @param float $sau
* @return Explotacion
*/
public function setSau($sau)
{
$this->sau = $sau;
return $this;
}
/**
* Get sau
*
* @return float
*/
public function getSau()
{
return $this->sau;
}
/**
* Set numCabezas
*
* @param integer $numCabezas
* @return Explotacion
*/
public function setNumCabezas($numCabezas)
{
$this->numCabezas = $numCabezas;
return $this;
}
/**
* Get numCabezas
*
* @return integer
*/
public function getNumCabezas()
{
return $this->numCabezas;
}
/**
* Set haMillo
*
* @param float $haMillo
* @return Explotacion
*/
public function setHaMillo($haMillo)
{
$this->haMillo = $haMillo;
return $this;
}
/**
* Get haMillo
*
* @return float
*/
public function getHaMillo()
{
return $this->haMillo;
}
/**
* Set haHerba
*
* @param float $haHerba
* @return Explotacion
*/
public function setHaHerba($haHerba)
{
$this->haHerba = $haHerba;
return $this;
}
/**
* Get haHerba
*
* @return float
*/
public function getHaHerba()
{
return $this->haHerba;
}
/**
* Set kgCuota
*
* @param float $kgCuota
* @return Explotacion
*/
public function setKgCuota($kgCuota)
{
$this->kgCuota = $kgCuota;
return $this;
}
/**
* Get kgCuota
*
* @return float
*/
public function getKgCuota()
{
return $this->kgCuota;
}
/**
* Set idParroquia
*
* @param \Aimer\PlataformaBundle\Entity\Parroquia $idParroquia
* @return Explotacion
*/
public function setIdParroquia(\Aimer\PlataformaBundle\Entity\Parroquia $idParroquia)
{
$this->idParroquia = $idParroquia;
return $this;
}
/**
* Get idParroquia
*
* @return \Aimer\PlataformaBundle\Entity\Parroquia
*/
public function getIdParroquia()
{
return $this->idParroquia;
}
}
存储库文件
<?php
namespace Aimer\PlataformaBundle\Entity;
use Doctrine\ORM\EntityRepository;
/**
* ExplotacionRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class ExplotacionRepository extends EntityRepository
{
public function nomeConcello()
{
/*
$em = $this->getDoctrine()->getManager();
$query = $em->createQuery(
'SELECT c.nombre FROM Concello c WHERE c.id = (SELECT idConcello FROM Parroquia WHERE id = :id)'
)->setParameter('id', 1);
$concello = $query->getResult();
return $concello;
*/
$this->getEntityManager()
->createQuery('SELECT c.nombre FROM Concello c WHERE c.id = (SELECT idConcello FROM Parroquia WHERE id = :id)')
->setParameter('id', 1)
->getResult();
}
}
这是我尝试在ExplotacionController文件中使用Repository方法的代码:
public function showAction($id)
{
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('AimerPlataformaBundle:Explotacion')->find($id);
$nomeConcello = $em->getRepository('AimerPlataformaBundle:ExplotacionRepository')->nomeConcello();
if (!$entity) {
throw $this->createNotFoundException('Unable to find Explotacion entity.');
}
$deleteForm = $this->createDeleteForm($id);
return $this->render('AimerPlataformaBundle:Explotacion:show.html.twig', array(
'entity' => $entity,
'delete_form' => $deleteForm->createView(),
'nomeConcello' => $nomeConcello, ));
}
答案 0 :(得分:1)
您可以通过调用实体来调用存储库类。 像这样
$nomeConcello = $em->getRepository('AimerPlataformaBundle:Explotacion')->nomeConcello();
无需明确呼叫。