Codeigniter2,Doctrine2,作曲家等。一个巨大的混乱
Posted
技术标签:
【中文标题】Codeigniter2,Doctrine2,作曲家等。一个巨大的混乱【英文标题】:Codeigniter2, Doctrine2, Composer ect. a huge mess 【发布时间】:2014-06-22 19:59:34 【问题描述】:我整天都在努力让它工作,不幸的是没有成功!我按照学说首页的教程here
所以我得到了 composer 并将所有教义人员下载到一个供应商文件夹中,然后我把这个文件夹放在 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
所以我的模型/实体文件夹中有一个实体,如下所示:
/**
* @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】:试试$repository = $em->getRepository('Menu');
。您不会将 Menu
推送到命名空间内,因此要么将其放在命名空间内,要么仅使用类名。
【讨论】:
以上是关于Codeigniter2,Doctrine2,作曲家等。一个巨大的混乱的主要内容,如果未能解决你的问题,请参考以下文章
CodeIgniter2的Doctrine2包装器-开发配置。
PHP cli-config.php - doctrine2 + codeigniter2
在 Doctrine 2 / CodeIgniter 2 中找不到实体模型