2015-12-04 5 views
0

Я не могу понять, где я ошибаюсь. Это исключение брошеноНет файла сопоставления

Doctrine \ Common \ Постоянство \ Mapping \ MappingException выброшен

Нет проецируемый файл не найден по имени 'Acme.Repository.Pass.Onpassrequest.dcm.xml' для класса «Acme \ Repository \ Pass \ Onpassrequest.

Моя структура папок следующие

- index.php 
- bootstrap.php 
/src 
    /xml 
    -Acme.Repository.Pass.Onpassrequest.dcm.xml 
    /Acme 
    /Repository 
     /Pass 
     - Onpassrequest.php 
    /Web 
     /WebInterface 
     - OnPassRequestWebInterface.php 

Мой bootstrap.php является

<?php 
use Doctrine\ORM\Tools\Setup; 
use Doctrine\ORM\EntityManager; 
use Symfony\Component\HttpFoundation\Request; 
// Time zone; 
date_default_timezone_set("Europe/Rome"); 

$loader = require "vendor/autoload.php"; 

// Create a simple "default" Doctrine ORM configuration for XML 
$isDevMode = true; 

$config = Setup::createXMLMetadataConfiguration(array("./src/xml"), $isDevMode); 

// Database configuration parameters 
$dbParams = array(
    'driver' => 'pdo_mysql', 
    'host'  => 'localhost', 
    'user'  => 'uuu', 
    'password' => 'ppp', 
    'dbname' => 'ddd', 
); 

// Obtaining the entity manager 
$em = EntityManager::create($dbParams, $config); 

Я хочу wuery хранилище от ./src/Acme/Web/WebInterface/OnPassRequestWebInterface. php-файл, вызывающий getLayout ($ user, $ role, $ wholelist, $ root, \ Doctrine \ ORM \ EntityManager $ em), в $ role есть значение "administrator", поэтому он вызывает getUserLayout

<?php 
namespace Acme\Web\WebInterface; 

class OnPassRequestWebInterface{ 

    /** 
    * 
    * @param array $user 
    * @param array $roles 
    * @param array $entirelist 
    * @param string $root 
    * @param \Doctrine\ORM\EntityManager $em 
    */ 
    public static function getLayout($user, $roles, $entirelist, $root, \Doctrine\ORM\EntityManager $em){ 

     self::$user = $user; 
     self::$roles = $roles; 
     self::$entirelist = $entirelist; 
     self::$root = $root; 
     self::$em = $em; 

     if(in_array("administrator", self::$roles)){ 

      self::getUserLayout(); 

     } else { 

     } 


    } 


    public static function getUserLayout($period = "P2W"){ 

     $date = new \DateTime(); 

     $date->add(new \DateInterval($period)); 

     $qb = self::$em->createQueryBuilder(); 

     $qb->select("r") 
      ->from("\\Acme\\Repository\\Pass\\Onpassrequest", "r") 
      ->where("r.userId = :userId AND r.eventdate >= NOW() AND r.eventdate <= :enddate") 
      ->orderBy("r.eventdate", "ASC") 
      ->setParameters(array("userId" => self::$user->ID, 
        "enddate" => $date->format("Y-m-d"))); 

     $query = $qb->getQuery(); 

     $request = $query->getResult(); 

     $view = self::renderView("user-next-request.php", array($request), false); 

     echo $view; 

    } 

Любая идея? Спасибо вам большое.

ответ

0

Решено.

$config = Setup::createXMLMetadataConfiguration(array("./src/xml"), $isDevMode); 

Это настроено с относительным путем. Просто добавив DIR будет работать

$config = Setup::createXMLMetadataConfiguration(array(__DIR__."/src/xml"), $isDevMode); 

Пропущенный что. Thanks

Смежные вопросы