symfony - Symfony 3 - 无法使用自定义存储库
问题描述
我尝试在 Symfony 3 中创建默认存储库。首先,我使用方法“findByParentOrderedByName”创建了存储库类。在下一步中,我在实体行中添加:
* @ORM\Entity(repositoryClass="AppBundle\Repository\ChildRepository")
不幸的是,当我尝试运行 findByParentOrderedByName() 时出现错误
未定义的方法“findAllOrderedByName”。方法名称必须以 findBy、findOneBy 或 countBy 开头!
我做错了什么?
存储库代码:
<?php
namespace AppBundle\Entity;
/**
* Child
* @ORM\Entity(repositoryClass="AppBundle\Repository\ChildRepository")
*/
class Child
{
........
}
解决方案
要正确使用自定义存储库类,首先必须在实体类中定义存储库类名称。
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="AppBundle\Repository\ChildRepository")
*/
class Child
{
}
然后像这样创建存储库类:
namespace AppBundle\Repository;
use Doctrine\ORM\EntityRepository;
class ChildRepository extends EntityRepository
{
/**
* @return Child[]
*/
public function findAllOrderedByName()
{
return $this->getEntityManager()
->createQuery('SELECT * c FROM AppBundle:Child c ORDERED BY c.name ASC')
->getResult();
}
}
推荐阅读
- ruby-on-rails - 在不更改现有数据的情况下重命名单表继承 rails 模型类名
- share - 将站点通知仪表板覆盖到用户仪表板
- django - 即使通过命令渲染也无法在 CMD 日志中看到
- reactjs - 从嵌套的 MobX 商店向 React 组件发送道具不起作用?
- javascript - 如何在没有 attachShadow 的情况下创建自定义元素?
- sql - 如何按日期对 PostgreSQL 中的数据进行分组和收集?
- cassandra - 用于高摄取率和删除操作的 Cassandra 数据模型
- mysql - 添加值的 Sql 语法问题
- javascript - 我如何显示“低于”“点击的单词”
- c - 尝试使用 C 创建 lu 分解逆矩阵