【发布时间】:2014-09-15 07:04:50
【问题描述】:
我正在尝试在使用 silex 构建的应用程序中使用 Doctrine 组件。我能够让它工作 - 差不多。
我有我的“用户”实体和相应的存储库
什么时候做
$app['em']->getRepository('Foo\Entity\User')->findAll()
按预期工作,但是在尝试进行自定义查询时
$this->getEntityManager()
->createQuery(
'SELECT
u
FROM
Foo:User u
WHERE c.id = :x'
)
->setParameter('x',$in)
->getResult();
我得到了这个异常
ORMException: Unknown Entity namespace alias 'Foo'
请忽略我可以使用findById() 或findBy(array('id'=>$in)) 进行选择的事实,问题出在自定义查询上
这是我的配置
$app['orm.em.options'] = array(
'mappings' => array(
array(
'type' => 'annotation',
'namespace' => 'Foo\Entity',
'alias' => 'core',
'path' => '%app.path%/src/Foo/Entity',
'use_simple_annotation_reader' => false,
)
));
和
$config = Setup::createAnnotationMetadataConfiguration(array(__DIR__."/src/Foo/Entity"));
$params = $app['db.options'];
$app['em'] = EntityManager::create($params, $config);
经过一些研究可能的解决方案:
- auto_mapping: true => 试过了,没有成功
- 注册命名空间 => 已尝试,不确定是否正确,可能是解决方案,请告知如何正确操作
- 除此之外,我还尝试搜索具有类似“用法”的 git 存储库,但没有找到 :(
更新
目前我在查询中使用以下行并且它有效
FROM
InstaLikes\Entity\User u
【问题讨论】:
标签: doctrine-orm doctrine silex