Dam*_*che 6 symfony doctrine-orm
我有一个奇怪的问题.这是错误消息:
调用未定义的方法 MyProject\BlogBundle\Entity\Blog::findOneById()
我已经设置了映射,实体类是使用控制台创建的,我已经更新了数据库中的模式.可能导致此问题的原因是什么?
我正在使用symfony2.这是一行:
$blogRepo = $this->get('myproject.blog.repository.blog');
$blog = $blogRepo->findOneById($id);
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
findOneById不存在,试试
$ blogRepo-> findOneBy(array('id'=> $ id));
其中"id"是您实体中的现有字段.
您可以在此处查看Doctrine的类文档:EntityRepository
编辑:看起来像findOneById确实存在,只要该实体具有字段"Id".检查文档.感谢Ryall指出它
什么是服务定义myproject.blog.repository.blog?看起来你正在将它映射到MyProject\BlogBundle\Entity\Blog它应该是它MyProject\BlogBundle\Entity\BlogRepository.
您也可以通过EntityManager动态创建一个Repository类,而不是创建自己的Repository类.
$user = $em->getRepository('MyProject\Domain\User')->find($id);
Run Code Online (Sandbox Code Playgroud)
甚至更短:
$user = $em->find('MyProject\Domain\User', $id);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17468 次 |
| 最近记录: |