Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

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