Doctrine MappingException with message Class XXXX does not exist in MappingException.php
Publicado por barthuin (6 intervenciones) el 18/08/2017 18:44:29
Hola,
Tengo algunos problemas con Doctrine y no entiendo muy bien porqué. Tengo 2 clases DAO Este es el dao génerico daoGenerico.php
y este es otro dao llamado daoMunicipios.php
El método buscarPorIdProvincia en daoMunicipios.php está funcionando bien en la clase UsuariosController.php ya que está mostrando correctamente el var_dump().
El problema está con la clase funciones.php
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
Tengo algunos problemas con Doctrine y no entiendo muy bien porqué. Tengo 2 clases DAO Este es el dao génerico daoGenerico.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?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().
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?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
Valora esta pregunta


0