无法让自定义存储库工作

2023-11-22

我正在遵循 Symfony2 教程(第 4 章),但我在检索时遇到问题getLatestBlogs我的自定义存储库中的方法。

我在 Linux Mint 上使用 Symfony 2.2 和 Phar。

我自己创建了存储库,但我很困惑。我收到此错误:

未定义方法“getLatestBlogs”。方法名称必须以 findBy 或 findOneBy 开头! - 错误方法调用异常

我用谷歌搜索过其他类似的问题,但没有结果。有人能发现我的代码中的错误吗?

附加信息

我的composer.json内容如下:

"require": {
    "php": ">=5.3.3",
    "symfony/symfony": "2.2.0", ** NOTE : Originally read 2.2.* but I changed and successfully ran a composer update **
    "doctrine/orm": ">=2.2.3,<2.4-dev",
    "doctrine/doctrine-bundle": "1.2.*",
    "twig/extensions": "1.0.*",
    "symfony/assetic-bundle": "2.1.*",
    "symfony/swiftmailer-bundle": "2.2.*",
    "symfony/monolog-bundle": "2.2.*",
    "sensio/distribution-bundle": "2.2.*",
    "sensio/framework-extra-bundle": "2.2.*",
    "sensio/generator-bundle": "2.2.*",
    "jms/security-extra-bundle": "1.4.*",
    "jms/di-extra-bundle": "1.3.*",
    "doctrine/doctrine-fixtures-bundle": "dev-master",
    "doctrine/data-fixtures" : "dev-master"        
},

My src/Blogger/BlogBundle/Controller/PageController.php:

namespace Blogger\BlogBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Blogger\BlogBundle\Entity\Enquiry;
use Blogger\BlogBundle\Form\EnquiryType;

class PageController extends Controller
{
    public function indexAction()
    {
        $em = $this->getDoctrine()
               ->getManager();

        $blogs = $em->getRepository('BloggerBlogBundle:Blog')->getLatestBlogs();

        return $this->render('BloggerBlogBundle:Page:index.html.twig', array(
            'blogs' => $blogs
        ));
    }

原本是谎言 和我的src/Blogger/BlogBundle/Entity/Blog.php:

namespace Blogger\BlogBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Table(name="blog")
 * @ORM\Entity(repositoryClass="Blogger\BlogBundle\Repository\BlogRepository")
 * @ORM\HasLifecycleCallbacks()
 */
class Blog
{

最后是我的src/Blogger/BlogBundle/Repository/BlogRepository.php:

namespace Blogger\BlogBundle\Repository;

use Doctrine\ORM\EntityRepository;

/**
 * BlogRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class BlogRepository extends EntityRepository
{

    public function getLatestBlogs($limit = null)
    {
        $qb = $this->createQueryBuilder('b')
                   ->select('b')
                   ->addOrderBy('b.created', 'DESC');

        if (false === is_null($limit))
            $qb->setMaxResults($limit);

        return $qb->getQuery()
                  ->getResult();
    }

}

您可以检查以下内容来解决此问题:

  • 确保注释中的 FQCN 与存储库文件的类名匹配,并且您已设置正确的命名空间。

  • 如果您启用了此功能,请清除所有元数据缓存或暂时禁用 Doctrine 缓存。

    app/console doctrine:cache:clear-metadata

  • 检查您的映射类型是否设置为annotation在你的配置中。即如果你有yml你必须定义你的repositoryClass在 yml 文件中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法让自定义存储库工作 的相关文章

随机推荐

  • Django csrf 请求上下文

    如果我包括 csrf token 在我的表单模板中并在我的视图中导入 RequestContext 我是否必须添加我认为的其他内容 或者是否会考虑 csrf 保护 如下所示 from django shortcuts import rend
  • 带子菜单的纯CSS垂直菜单

    我做了我的研究 并且能够复制我正在寻找的东西 嗯 我只需要一个更具体的垂直 纯 CSS 菜单的帮助 我希望我的子菜单弹出窗口显示在 a 左侧 10 像素处 而不是 a 左侧li属性就像互联网上找到的大多数示例一样 我也在寻找最简单 纯 CS
  • 双 * (splat) 运算符有什么作用

    你见过这样声明的函数吗 def foo a b end 我的理解是单 是 splat 运算符 什么是 mean Ruby 2 0 引入了关键字参数 并且 行为就像 但对于关键字参数 它返回带有键 值对的哈希 对于这段代码 def foo a
  • C# - 具有系统时间意识的 Windows 服务

    我正在考虑编写一个 Windows 服务 该服务将在用户指定的时间打开或关闭某些功能 使用我将提供的配置实用程序 基本上 用户会指定 PC 进入 仅工作 模式 阻止 Facebook 和其他分散注意力的网站 的特定时间 然后当这些时间到时
  • 在 C# 中使用 Linq 进行字符串替换

    public class Abbreviation public string ShortName get set public string LongName get set 我有一个缩写对象列表 如下所示 List abbreviati
  • 如何在 Objective-C 中旋转 UIButton 和 UILabel 的文本?

    如何旋转文本UIButton and UILabel 90度 180度 yourlabelname setTransform CGAffineTransformMakeRotation M PI 2 rotated image pervio
  • CSS:根据后备字体设置字体粗细

    我正在尝试根据选择的字体设置元素的字体粗细 例如 我可能正在尝试做这样的事情 h1 font family Arial Narrow Impact sans serif font weight 假设如果用户的系统上安装了 Arial Nar
  • 将 C99 代码转换为 C89

    如何将c99源代码自动转换为c89 我想用Visual C 编译c99库 但MSVC只支持c89 许多更改只是语法上的 例如结构初始值设定项 您可以编写一个工具来自动 de c99 代码 这个预处理器存在吗 基于 Clang 的源到源转换器
  • 如何使用 php 检查 $_GET['id'] 是否已设置且不为空

    这是一段php代码 if isset GET id do something else redirect index php redirect is a function 现在 如果设置了 id 例如 index php id 12 则执行
  • 在 MATLAB 中显示 CPU 内核利用率

    无论如何 任何功能等 都要显示CPU cores utilization in MATLAB in a GUI喜欢我们的Task Manager窗口 性能选项卡 Thanks 据我所知 没有任何 Matlab 函数可以在进程使用级别访问系统
  • 鼠标焦点没有轮廓,但键盘焦点仍有轮廓?

    当页面的元素获得焦点 例如链接或按钮 时 它们会显示轮廓 我希望此轮廓仅在键盘 而不是鼠标 赋予该元素焦点时显示 是否可以通过 JavaScript 确定该元素如何获得焦点 如果是这样 我如何控制浏览器自己的大纲功能 浏览器使用CSSout
  • 无法在 php 中解码 JSON 字符串

    我有以下 JSON 字符串 我尝试使用 php json decode 但 postarray 进行解码 总是 NULL 不明白这是为什么 在 Debian 5 0 Linux 上运行 php 客户端 API 版本 gt 5 0 51a J
  • 如何使用更短的名称调用 Perl 类?

    我正在编写一个 Perl 模块Galaxy SGE MakeJobSH与面向对象 我想用MakeJobSH gt new 代替Galaxy SGE MakeJobSH gt new 或其他一些简称 我怎样才能做到这一点 您可以建议您的用户使
  • ListView 在滚动期间更改项目

    我正在使用自定义 ArrayAdapter 来实现 ListFragment 来填充列表 每个行项目都有一个 ImageView 和三个 TextView 数据通过 XML 进行解析 图像进行异步加载 我遇到的问题是 ListView 填充
  • 为什么我在 Windows SDK 中找不到 cfgmgr32.lib?

    我正在尝试使用配置管理器 API 例如CM Get Device ID 文档说要链接到cfgmgr32 lib 但是 当我这样做时 我从链接器收到一条错误消息 错误 1 错误 LNK1104 无法打开文件 cfgmgr32 lib 我找不到
  • 如何在 Android 中使用系统提供的图标(例如 Expander_ic_maximized)

    你能告诉我如何使用android的图标expander ic maximized吗 我发现在frameworks base core res res drawable hdpi expanderic minimized 9 png 这是我的
  • 给元素添加点击事件?

    如何将单击事件分配给任意范围 eg lt span id foo gt foo lt span gt 在 ST2 应用程序中 我有一个简单的例子来说明我想做的事情的想法 在示例中 我写了字母A B C我想告诉用户他们点击了哪个字母 这是一张
  • 如何在 SharedPreferences 中存储整数数组?

    我想使用保存 调用整数数组共享首选项 这可能吗 您可以尝试这样做 将整数放入字符串中 用字符 例如逗号 分隔每个整数 然后将它们保存为字符串 SharedPreferences prefs getPreferences MODE PRIVA
  • 如何在 Swift 3 中声明具有新优先级组的指数/幂运算符?

    Xcode 8 beta 6 的 Swift 3 发生了变化 现在我无法像以前那样声明我的操作符 infix operator public func radix Double power Double gt Double return p
  • 无法让自定义存储库工作

    我正在遵循 Symfony2 教程 第 4 章 但我在检索时遇到问题getLatestBlogs我的自定义存储库中的方法 我在 Linux Mint 上使用 Symfony 2 2 和 Phar 我自己创建了存储库 但我很困惑 我收到此错误