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

   
Vista:

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

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Revisar política de publicidad