Hep*_*bah 3 zend-framework doctrine-orm
我无法从doctrine 2.0和Zend框架中的控制器访问自定义存储库?
我的文件结构如下: -
application/controllers
/configs
/domain/
Entities/User.php
/Mappings/User.php
Proxies/
Repositories/
vendor/
Doctrine
Run Code Online (Sandbox Code Playgroud)
在User.php中,我包括这样的:
namespace Repositories;
use Doctrine\ORM\EntityRepository;
/**
* @entity(repositoryClass="Repositories\UserRepository")
* @Table(name="User")
*/
class User
{
}
Run Code Online (Sandbox Code Playgroud)
即使我尝试过
namespace Entities;
use Doctrine\ORM\EntityRepository;
/**
* @entity(repositoryClass="Entities\UserRepository")
* @Table(name="User")
*/
class User
{
}
Run Code Online (Sandbox Code Playgroud)
我已经通过命令为域/存储库生成了存储库.
现在我在文件夹域/存储库中有我自定义的存储库.我想在我的UserController.php中访问ex:UserRepository我试过这个.
$this->em = Zend_Registry::get('em');
$userlist = $this->em->getRepository('Repostories\User')->getusers();
Run Code Online (Sandbox Code Playgroud)
输出:没有这样的文件或目录
如果我试过:
$this->em->getRepository('Entities\User')->getusers();
Run Code Online (Sandbox Code Playgroud)
输出:缺少getusers()函数.你的函数应该由findBy开始
请帮忙解决这个问题.
谢谢,Hephzibah.
Phi*_*hil 12
从存储库开始
// Repositories/UserRepository.php
namespace Repositories;
use Doctrine\ORM\EntityRepository;
class UserRepository extends EntityRepository
{
public function getusers()
{
// etc
}
}
Run Code Online (Sandbox Code Playgroud)
现在是实体
// Entities/User.php
namespace Entities;
/**
* @Entity(repositoryClass="Repositories\UserRepository")
*/
class User
{
// etc
}
Run Code Online (Sandbox Code Playgroud)
如果您的自动加载器可以在两者Repositories和Entities命名空间中找到类,则以下内容应该可以正常工作
$em->getRepository('Entities\User')->getusers();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7151 次 |
| 最近记录: |