Codeigniter 2,Doctrine2,Composer等。一团糟

时间:2014-06-22 19:59:35

标签: php codeigniter orm doctrine-orm

我整天都努力让它发挥作用,遗憾的是没有成功!我按照教义主页here

的教程进行操作

所以我得到了作曲家并在供应商文件夹中下载了所有学说人员,然后我拿了这个文件夹并将其放入codeigniter/application/library然后我用这段代码创建了一个文件Doctrine.php:

use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;

class Doctrine {

  public $em = null; 

  public function __construct()
  { 

    include APPPATH.'config/database.php'; 
    require_once __DIR__."/Doctrine/vendor/autoload.php";

    $paths = array(APPPATH.'models/Entity');

    $isDevMode = true;

    // the connection configuration
    $dbParams = array(

        'driver'   => 'pdo_mysql',
        'user'  => $db['local']['username'],
        'password'  => $db['local']['password'],
        'host'  => $db['local']['hostname'],
        'dbname'    => $db['local']['database'],
        'charset'   => $db['local']['char_set'],

    );

    $config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);
    $entityManager = EntityManager::create($dbParams, $config);

    $this->em = $entityManager;

  }

}

已保存在同一路径中codeigniter/application/library

所以我的models / Entity文件夹中有一个实体,如下所示:

/**
 * @Entity
 * @Table(name="site_users")
 */
class Menu
{
    //...
}

,最后一个代码在控制器中

$this->load->library('Doctrine');
$em = $this->doctrine->em;   
$repository = $em->getRepository('Entity\Menu');

然后我遇到了这个错误

Doctrine\Common\Persistence\Mapping\MappingException' with message 'Class 'Entity\Menu' does not exist

基本上我想使用教条,因为它的Gedmo树扩展,但仍然可以安装该教条,如果有人可以帮助它的扩展将是非常感谢提前。

1 个答案:

答案 0 :(得分:0)

试试$repository = $em->getRepository('Menu');。你没有在命名空间中推送Menu,所以要么将它放在命名空间内,要么只使用类名。