Doctrine2大合集

2024-05-04

在过去的几天里,我一直在玩doctrine2 + ZF 设置。

我仍然无法弄清楚的一件事是大型数组集合关联。例如,假设我们有一个名为 Post 的实体,每个帖子可以有很多评论。

<?php
/**
 * @Entity
*/
class Post
{
  /**
   * @OneToMany(targetEntity="Comment", mappedBy="post")
   */
   protected $comments;
}
?>

现在,如果我这样做,这将加载所有评论

$post->comments

但是,如果该特定帖子有 10000 条评论怎么办?然后所有内容都会被加载,这不太好。据我所知,切片/分页要到原则 2.1 才可用。

有人可以建议我如何对评论进行分页吗?或许可以使用 DQL?如果是 DQL,您在哪里实现它?我是否在 Post 实体中创建 getComments 方法并在那里执行 DQL?

谢谢 账单


我正在使用分页https://github.com/beberlei/DoctrineExtensions https://github.com/beberlei/DoctrineExtensions,效果很好,至少对我来说。

Edit:不确定这会对您有帮助,但这就是我的分页方法

控制器

// Create the query
$qb = $this->_em->createQueryBuilder();

$qb->select('p')
   ->from('Identiti_Entities_Pengguna', 'p');

// Sorting
$qb->addOrderBy('p.' . $input->sort, $input->dir);

$q = $qb->getQuery();

// Pagination
$itemPerPage = 100;

$records = new Zend_Paginator(
                new DoctrineExtensions\Paginate\PaginationAdapter($q));

$records->setCurrentPageNumber($input->page)
        ->setItemCountPerPage($itemPerPage)
        ->setPageRange(10);

$this->view->records = $records;

View

<?
echo $this->paginationControl($this->records,
                              'Sliding',
                              'partials/pagination.phtml');
?>

分页.html

<?php if ($this->pageCount): ?>
<ul id="pagination-digg">
    <li class="previous"><a href="#">Pages: <?=$this->pageCount?></a></li>
<!-- Previous page link -->
<?php if (isset($this->previous)): ?>
  <li class="previous"><a href="<?php echo $this->url(array('page' => $this->previous)); ?>">
    &lt; Previous
  </a></li>
<?php else: ?>
    <li class="previous-off">&lt; Previous</li>
<?php endif; ?>


<!-- Numbered page links -->
<?php foreach ($this->pagesInRange as $page): ?>
    <?php if ($page != $this->current): ?>
        <li>
            <a href="<?php echo $this->url(array('page' => $page)); ?>">
                <?php echo $page; ?>
            </a>
        </li>
    <?php else: ?>
        <li class="active"><?php echo $page; ?></li>
    <?php endif; ?>
<?php endforeach; ?>

<!-- Next page link -->
<?php if (isset($this->next)): ?>
    <li class="next">
        <a href="<?php echo $this->url(array('page' => $this->next)); ?>">
            Next &gt;
        </a>
    </li>
<?php else: ?>
  <li class="next-off">Next &gt;</li>
<?php endif; ?>
</ul>
<?php endif; ?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Doctrine2大合集 的相关文章

  • 类 Entities\USER_User 中的注释“@Doctrine\ORM\Mapping\Entity”不存在,或无法自动加载

    我想在我的 Zend 框架应用程序中结合使用 Doctrine 2 和 l3pp4rd DoctrineExtensions 但我只收到以下错误消息 Entities USER User 类中的注释 Doctrine ORM Mapping
  • 日期未保存在mysql数据库中

    我在 MySQL 数据库中保存日期时遇到问题 测试一切 我正在尝试将 2010 01 01 例如 保存在 MySQL 数据库中 首先 我将 MySQL 字段设置为最新 这不起作用 但是当我将字段设置为字符串类型时 它确实将日期保存在数据库中
  • Zend 覆盖默认视图对象

    如何覆盖 zend 框架中的默认视图对象 以便我可以拥有自定义视图对象 class Bootstrap extends Zend Application Bootstrap Bootstrap function initViewHelper
  • 原则 2 - ManyToMany + IN 子句

    我有这个模型 Entity Table name articles class Article Id GeneratedValue Column type integer protected id Column type string le
  • 每个月的第一天

    如果我从当前日期开始 如何获得每个月的第一个星期五 我正在考虑使用 date gt get Zend WEEKDAY 并将其与星期五进行比较 然后与 DAY 进行比较 并检查它是否小于或等于 7 然后添加 1 个月 一定有更简单的东西吗 怎
  • 如何获取一维标量数组作为学说 dql 查询结果?

    我想从拍卖表的 id 列中获取一组值 如果这是一个原始 SQL 我会写 SELECT id FROM auction 但是当我在 Doctrine 中执行此操作并执行时 em gt createQuery SELECT a id FROM
  • bootstrap 一般如何工作,特别是在 Zend Framework 中?

    我正在阅读 Zend Framework 手册 但无法理解引导程序如何工作 特别是在 ZF 和一般情况下 他们写 您的 Bootstrap 类定义了要使用哪些资源和组件 初始化 好的 这意味着应该首先实例化 Bootstrap 类 但随后他
  • Doctrine2大合集

    在过去的几天里 我一直在玩doctrine2 ZF 设置 我仍然无法弄清楚的一件事是大型数组集合关联 例如 假设我们有一个名为 Post 的实体 每个帖子可以有很多评论 现在 如果我这样做 这将加载所有评论 post gt comments
  • 如何通过 SyliusResourceBundle 使用 Sylius 创建新模型

    我找到并成功使用了有关如何覆盖 Sylius 中现有模型的文档 但我无法利用 SyliusResourceBundle 创建一个全新的模型 我猜如果你已经了解 Symfony2 的话这很容易吗 我仍在学习 所以这就是我所拥有的 我缺少什么
  • Symfony2 - ReferencedColumnName id 为空

    我要放弃食谱文章了表单集合 http symfony com doc current cookbook form form collections html但是 当尝试将其保留到数据库时 我收到约束冲突错误 引用的列名称 id 为空 SQL
  • Zend,Application.ini 中的全局变量?

    我有一个问题 因为我需要一个全局静态变量 并且我有一个问题是否有可能将其添加到 application ini 文件中 该怎么做 或者我必须 使用静态变量创建抽象类 在 Zend Registry 中注册它 以便从所有应用程序访问该变量 在
  • 是否值得将 Doctrine 2 与 Zend Framework 一起使用?

    我知道有些用户在 Zend Framework 中使用 Doctrine 2 而不是 Zend Db 但我不知道为什么 为什么 Doctrine2 比 Zend Db 好 为什么 Zend Db 不好 Thanks 2013 年 3 月 7
  • 我如何解决语义错误:“类没有名为..”的关联

    我正在关注 symblog symfony2 教程的第 5 部分 http tutorial symblog co uk docs customising the view more with twig html 标题下 主页 博客和评论
  • Doctrine 生成实体命名空间问题?

    好吧 我对原则有最后一个问题 生成 实体命令 我运行以下命令 并得到预期的文件 src MyNamespace Bundle MyNamespaceBundle Resources config doctrine metadata orm
  • Symfony:为什么 isInitialized 总是 false?

    我用教义查询了一个用户 customer this gt getDoctrine gt getRepository DemoUserBundle Customer gt find 1 但我得到了结果 顾客 1441 已初始化 错误的 ID
  • Symfony2动态添加事件监听器

    如何在不使用 services yml 模式的情况下动态地将事件侦听器 在我的例子中是一个学说事件 添加到内核 在深入研究了供应商目录之后 我自己找到了答案appProdProjectContainer php文件 如果您希望使用事件管理器
  • Doctrine2:入门教程“没有要处理的元数据类”

    我已经将本教程的第一部分运行了三遍 到目前为止 在这里或其他地方进行的大量搜索都无法帮助我使其发挥作用 我收到 没有要处理的元数据类 当我尝试时 php vendor bin doctrine orm schema tool update
  • php 或 zend 中国际电话号码验证的正则表达式是什么?

    我有一个 zend 表单 其中有一个电话号码字段 并且必须检查验证器 我决定为此使用正则表达式 我搜索了谷歌 但我得到的结果不起作用 谁能给我提供正则表达式 这是我的代码 phone new Zend Form Element Text p
  • Zend IMAP 搜索和过滤器

    我如何使用 Gmail 中的过滤器进行搜索 就像获取带有特定标签的电子邮件列表或来自特定电子邮件地址的邮件列表一样 我无法在文档中找到它 注意 我使用 oAuth 进行身份验证 我希望这与搜索无关 Gmail 上的标签实际上是 从 IMAP
  • 如何编写在正文中包含锚标记的 Zend Framework URL?

    使用 Zend Framework 中设置的标准 MVC 我希望能够显示始终具有锚点的页面 现在我只是在 phtml 文件中添加一个带有 anchor 的无意义参数

随机推荐

  • Android 中的 FLAG_ACTIVITY_CLEAR_TOP

    有人可以用一种非常简单的方式向我解释一下什么是FLAG ACTIVITY CLEAR TOP意思是 我知道有很多关于它的问题 但没有一个答案令我满意 有人还可以举一个这个标志有用的例子吗 谢谢 请检查以下链接以获取相同的详细信息 http
  • 无法在 Android Studio 中向 Activity_main.xml 添加任何项目

    在 Android Studio 中 我无法在设计视图中将调色板中的任何项目添加到 Activity main xml 中 它只是不允许我拖放它们 知道为什么会发生这种情况吗 这是打印屏幕 根据android studio中用于androi
  • 在运行时替换 Property Setter 方法

    我有许多共享一个公共基类的对象 我希望拦截所有设置属性值的调用 并记录这些值是否已在每个实例的基础上设置 我可以用反射替换运行时属性的 Set 方法吗 一种方法是使属性成为虚拟的 并在运行时通过反射发射创建一个子类来覆盖属性 添加您的代码
  • python-daemon 不记录标准输出重定向

    我在代码中使用 python daemon 其中包含 print 语句 我想将它们发送到一个文件 所以我运行了以下命令 python server py gt gt log out 然而什么也进不去log out 谁能告诉我我需要做什么 T
  • 在php中声明一个对象数组

    如何将 php 中的对象列表声明为私有实例变量 在 Java 中 声明看起来像这样private ArrayList ls构造函数会有这个ls new ArrayList Thanks PHP 动态分配内存 而且它并不关心您在数组中存储什么
  • 在 CSS 规则中重复类名是否会增加其优先级?

    假设我有一个 div li class menu item li 有人可以告诉我是否可以使用li menu item menu item menu item 使这个CSS规则具有更高的优先级 Update 下面是说明这一点的代码 ul li
  • 在 Windows 上使用堆栈安装 SDL2 for Haskell

    我正在尝试将 SDL2 与堆栈一起使用 我跟着这些说明 https www reddit com r haskellgamedev comments 4jpthu windows sdl2 is now almost painless vi
  • 使用 JavaScript 进行 CAPTCHA 验证

    我正在尝试使用 JavaScript 验证验证码 但我找不到任何有关验证码客户端 API 的资源 你有任何文件吗 If you could通过 JavaScript 验证验证码 这意味着在您传递给客户端的代码中可以轻松找到有效代码的方法 这
  • jQuery 对表列重新排序

    我找到了适用于行的各种解决方案 以及适用于普通表列的各种解决方案 但我需要一个允许我拖放 colspan gt 1 的列标题的解决方案 例如 table thead tr th A1 th th A2 th th A4 th th A5 t
  • 事件源和 SQL Server 多个关系表

    我们使用 SQL Server 2016 的事件源 我们有完整的客户产品应用程序 每个应用程序都标记为CustomerId并在事件商店中获取单个指南行项目 这是写入事件存储指南的主要标识符 产品应用程序附带许多不同的关系事物 没有引导 但有
  • SpriteKit:如何使用混合模式在图层中打孔

    我有一个简单的场景 添加了一些元素 现在我想专注于一个带有遮罩的特定元素 在与我想要关注的元素相同的位置切割整个元素 与我们在某些游戏第一次启动时看到的显示某种教程非常相似 基本上我添加了一个全屏层alpha 0 7 因此用户仍然可以看到所
  • ViewPager 中显示多个页面,位置不正确

    我正在尝试实现 Dave Smith 的 PagerContainer 以在我的 ViewPager 中显示多个页面 我已经实现了一个点击监听器来显示页码 但是当我单击左侧页面时 会显示 单击项目 2 消息 项目 0 是正确的 如果我单击中
  • VS Code 中运行代码和不调试运行的区别

    我是 cpp 编程的新手 使用 Visual Studio 代码 我不明白 Ctrl Alt N 运行代码 和 Ctrl F5 运行而不调试 之间有什么区别 Ctrl Alt N Run Code is a shortcut provide
  • 如果我有一些其他编程经验,学习 C++ 的最佳方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 只是想知道您对我学习 C 的策略有何看法 虽然我知道掌握一门编程语言需要数年时间 但我只是想尽快达到可以被认为有能力的水平 为什么要快 好吧 当
  • MSBuild:OutputPath 目录为空

    我想部署我的 ASP NET MVC 站点并具有以下脚本
  • Razor 三元表达式中的 Html 文字

    我正在尝试做类似以下的事情 div string IsNullOrEmpty myString nbsp myString div 上面的语法无效 我尝试了很多不同的东西但无法让它工作 请尝试以下操作 Html Raw string IsN
  • Windows 铿锵声Hello World lnk4217

    我已经安装了 clang 版本 6 0 以及 Visual Studio 2017 我正在编译一个简单的 hello world 应用程序 include
  • 参数的值类别在重载解析(或更一般的函数调用处理)的哪一部分中发挥作用?

    C 模板 完整指南 http www tmplbook com 在 C 1中 读取 执行重载解析以找到best候选人 如果有则选择 否则 调用是不明确的 然后 在 C 2中 对可能的匹配 给定参数与可行候选的相应参数 进行排序 如下所示 我
  • Filezilla - 需要将项目从服务器复制到桌面[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这可能非常简单明了 但我对 Filezilla 不太熟悉 不能犯错误 我需要将文件从服务器复制到桌面 而不实际将其从服务器中删除 实时站点
  • Doctrine2大合集

    在过去的几天里 我一直在玩doctrine2 ZF 设置 我仍然无法弄清楚的一件事是大型数组集合关联 例如 假设我们有一个名为 Post 的实体 每个帖子可以有很多评论 现在 如果我这样做 这将加载所有评论 post gt comments