Doctrine MappingException with message Class XXXX does not exist in MappingException.php

19 views
Skip to first unread message

Dani R.

unread,
Aug 18, 2017, 12:22:57 PM8/18/17
to Grupo de programadores PHP de Barcelona

Hola,

Tengo algunos problemas con Doctrine y no entiendo muy bien porqué. Tengo 2 clases DAO Este es el dao génerico daoGenerico.php


<?php
abstract class daoGenerico{ private $entityManager; /** * Class Constructor * @param $entityManager */ public function __construct() { if (file_exists("../../../../../bootstrap.php")){ require("../../../../../bootstrap.php"); } else{ require("bootstrap.php"); } $this->entityManager = $entityManager; } /** * @return mixed */ public function getEntityManager() { return $this->entityManager; } abstract public function listAll(); protected function listarTodo($nombre){ $repositorio = 'php\com\dBarrio\model\dto\\'.$nombre; $repository = $this->getEntityManager()->getRepository($repositorio); //->find($id); $entityList = $repository->findAll(); if (!$entityList) { throw $this->createNotFoundException( 'No product found' ); } return $entityList; } abstract public function findById($id); function buscarPorId($nombre, $id){ $repositorio = 'model\dto\\'.$nombre; $repository = $this->getEntityManager()->getRepository($repositorio); $entity = $repository->find($id); return $entity; } function insert($entity){ $entityM= $this->getEntityManager(); //->find($id); $entityM->merge($entity); $entityM->flush(); }

} ?>


y este es otro dao llamado daoMunicipios.php


<?php require_once('daoGenerico.php'); class daoMunicipios extends daoGenerico{ public function listAll(){ return parent::listarTodo('Municipios'); } public function findById($id){ return parent::buscarPorId('Municipios', $id); } public function buscarPorIdProvincia($idProvincia){ $repositorio = 'php\com\dBarrio\model\dto\Municipios'; $repository = $this->getEntityManager()->getRepository($repositorio); $entity = $repository->findOneBy(array('idProvincia' => $idProvincia)); return $entity; } } ?>
 

El método buscarPorIdProvincia en daoMunicipios.php está funcionando bien en la clase UsuariosController.php ya que está mostrando correctamente el var_dump().


<?php
require_once "./src/php/com/dBarrio/model/dao/daoUsuario.php"; require_once "./src/php/com/dBarrio/model/dao/daoTipoUsuario.php"; require_once "./src/php/com/dBarrio/model/dao/daoProvincias.php"; require_once "./src/php/com/dBarrio/model/dao/daoMunicipios.php"; require_once "./src/php/com/dBarrio/model/dto/Usuario.php"; class UsuariosController extends ControladorBase{ public $daoUsuario; public $daoTipoUsuario; public $daoProvincias; public $daoMunicipios; public function __construct() { parent::__construct(); $this->daoUsuario = new daoUsuario(); $this->daoTipoUsuario = new daoTipoUsuario(); $this->daoProvincias = new daoProvincias(); $this->daoMunicipios = new daoMunicipios(); } public function index(){ //Conseguimos todos los usuarios $tipoUsuarios=$this->daoTipoUsuario->listAll(); $provincias=$this->daoProvincias->listAll(); $municipios=$this->daoMunicipios->buscarPorIdProvincia(15); var_dump($municipios); //Cargamos la vista index y le pasamos valores $this->view("index",array( "tipoUsuario"=>$tipoUsuarios, "provincias" => $provincias )); }

} ?>


El problema está con la clase funciones.php


<?php
require_once "../model/dao/daoMunicipios.php"; $dao = new daoMunicipios(); var_dump($_GET); $municipiosArr = $dao->buscarPorIdProvincia($_GET["idProvincia"]); $municipiosStr = ""; foreach($municipiosArr as $municipio) { $municipiosStr .= "<option value='".$municipio->getIdmunicipio()."'>".$municipio->getNombre()."</option>"; } echo $municipiosStr; ?>

 

Cuando ejecuta el método $dao->buscarPorIdProvincia se muestra este error

Fatal error: Uncaught exception 'Doctrine\Common\Persistence\Mapping\MappingException' with message 'Class 'php\com\dBarrio\model\dto\Municipios' does not exist' in /Applications/MAMP/htdocs/dBarrio/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/MappingException.php on line 96


No entiendo muy bien porqué el mismo método funciona bien en la 1ª clase y no en la 2ª. ¿Cual es el problema? ¿Alguien podría ayudarme?


Muchas gracias por adelantado

Reply all
Reply to author
Forward
0 new messages