我整天都努力让它发挥作用,遗憾的是没有成功!我按照教义主页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树扩展,但仍然可以安装该教条,如果有人可以帮助它的扩展将是非常感谢提前。
答案 0 :(得分:0)
试试$repository = $em->getRepository('Menu');
。你没有在命名空间中推送Menu
,所以要么将它放在命名空间内,要么只使用类名。