Symfony 2 - 如何在 Twig 模板中显示加入的 Doctrine 实体

2023-12-24

  1. 如何检索twig中的实体数据?我选择了两个实体:新闻和评论,但在 twig 中我只能从新闻实体获取数据。 (例如:“来自树枝”)
  2. 如何查看获取的实体对象中的内容(例如:来自控制器的 $fetched_news 变量)。我尝试过: print_r($fetched_news) 或 {{ dump(fetched_news }}),但在第一个示例中我得到了全屏代码,而在第二个应用程序中则被挂起。
  3. 在新闻和评论实体中,有一个名为“内容”的列。如何从该列获取数据?我正在尝试这样的事情:

fetched_news.comments.content

or

fetched_news.news.content

我在很多页面上寻找答案,但找不到有趣的东西。

来自树枝:

{% for news in fetched_news %}
   <div class="col-md-5">
        <p class="news_title">{{ news.title }}</p>
        {{ (news.content|slice(0,600))|raw }}

         {{ news.ratePlus }} {# CAN'T GET THIS!#}
    {% else %}
{% endfor %}

来自控制器:

    public function indexAction()
{
    $em = $this->getDoctrine()->getManager();
    $query = $em->createQuery("SELECT n, a FROM BlogAdminBundle:News n JOIN n.comments a");
    $fetched_news = $query->getResult();


    return array('fetched_news' => $fetched_news);
}

来自 Web Profiler 的代码

SELECT 
n0_.id AS id0, 
n0_.content AS content1, 
n0_.title AS title2, 
n0_.date_add AS date_add3, 
n0_.date_active AS date_active4, 
n0_.settings AS settings5, 
c1_.id AS id6, 
c1_.content AS content7, 
c1_.date_add AS date_add8, 
c1_.rate_plus AS rate_plus9, 
c1_.rate_minus AS rate_minus10, 
n0_.user_id AS user_id11, 
c1_.user_id AS user_id12, 
c1_.news_id AS news_id13 
FROM 
News n0_ 
INNER JOIN Comments c1_ ON n0_.id = c1_.news_id

感谢帮助!

实体类点评:

 /**
 * @ORM\ManyToOne(targetEntity="News", inversedBy="comments")
 * @ORM\JoinColumn(name="news_id", referencedColumnName="id")
 */
protected $news;

实体类新闻:

 /**
 * @ORM\OneToMany(targetEntity="Comments", mappedBy="news")
 */
protected $comments;
public function __construct()
{
    $this->comments = new \Doctrine\Common\Collections\ArrayCollection();
}

给出以下代码:

$repository = $this->getDoctrine()->getRepository('BlogAdminBundle:News');

$query = $repository->createQueryBuilder('p') 
    ->where('p.date_active < :date') 
    ->setParameter('date', new \DateTime()) 
    ->getQuery(); 

$fetched_news = $query->getResult(); 

这应该适用于树枝:

{% for news_article in fetched_news %} 

    {{ news_article.content }}

    {% for comment in news_article.comments %}
        {{ comment.content }}
    {% endfor %}

{% endfor %}

您的每篇新闻文章都有一系列评论。我认为你只是有点混淆了你的$fetched_news变量=)。

Edit:我的代码中有一个小错误。我有fetched_news.news在外循环中,那应该只是feteched_news因为该变量是新闻文章的数组。

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

Symfony 2 - 如何在 Twig 模板中显示加入的 Doctrine 实体 的相关文章

  • 提交表单后关闭featherlight

    我有一个 demo employee php 页面 它检索系统的所有用户以及可以执行的特定操作 td table tr td a href i class fa fa pencil square o i a td td a href i c
  • PHP 使用字符串作为运算符

    假设我有一根绳子 char char 我还有两个变量 a 和 b 分别等于 4 和 5 我如何得到结果 a char b ie 4 5 谢谢 您可以使用eval 正如 konforce所建议的 但是最安全的路线是这样的 left int a
  • 在运行时修改方法/函数

    我一直在研究 php 反射方法 我想做的是在方法打开之后和任何返回值之前注入一些代码 例如我想更改 function foo bar foo bar return foo 并向其中注入一些代码 例如 function foo bar som
  • 在 Facebook 图表发布功能中包含换行符和项目符号点

    我试图允许我的用户将项目符号列表从我的网络应用程序发布到他们的 Facebook feed 该列表以表格形式创建 带有项目符号和换行符 然后可以对其进行编辑和提交 我的代码在发送常规文本 将表单内容发布到 FB 提要 时工作正常 但当消息包
  • mysql_result 与 mysql_array_assoc

    使用 mysql result 和 mysql array assoc 循环遍历大型 SQL 选择结果之间是否存在性能差异 来自mysql result 手册页 http php net mysql result 当处理大型结果集时 您 应
  • 我应该在客户端和服务器上都使用 MVC 吗?

    我决定在我的网站上使用 MVC 模式 所以 现在我在我的网站上使用 Backbone js 框架 我网站上的所有操作都是ajaxy 所以server只从db获取数据 并将数据保存到db 我是否也需要在服务器端使用 MVC 这让一切都变得复杂
  • “imagecolorat”和透明度

    如何才能获得透明度上一个像素的值image imagecolorat 仅选取图像中指定位置的像素颜色索引 通过该索引 我可以获取 RGB 值 但不能获取透明值 希望您理解 并提前感谢您 解决方案可能如下 colorIndex imageco
  • 是否可以替换 php 中的函数(例如邮件)并使其执行其他操作?

    我想用 PHP 重写一个函数 比如说 mail 函数 并且希望从现在开始调用 mail 时 它将加载我的 mail 版本而不是默认的 php 版本 这在 php 中可能吗 我想这样做的原因是因为我有数千行调用 mail 的代码 并且我不想重
  • 为什么我无法访问 PHP DateTime 类中的 DateTime->date?

    使用DateTime类 如果我尝试运行以下代码 mydate new DateTime echo mydate gt date 我会回复此错误消息 注意 未定义的属性 DateTime date 这没有意义 因为跑步时var dump 在变
  • PHP - 按后退按钮时 Session_Destroy

    这是我的问题 我有一个名为login php 的登录页面 不包含HTML 代码 当用户正确输入其凭据时 他会被重定向到特定页面 在本例中我们将使用 test php 该页面上的唯一链接会注销当前会话 并将用户返回到index html 我的
  • 在 Laravel 上将百万行数据从一个数据库复制到另一个数据库

    使用 Laravel Eloquent 我从旧 Mysql 数据库的一张表中复制 700 万行数据 并将这些行放在新 Mysql 数据库的不同表中 问题是 执行此操作花费了几乎一天的时间 并且我需要对近 80M 行重新执行此操作 我一次使用
  • PHP - 解析具有固定列宽的文本文件

    我是 PHP 和 Laravel 的新手 我需要打开文件并解析内容以将它们传递到数据库 文本文件具有固定的列宽 它没有分隔符或标题 我认为使用子字符串并将每个子字符串分配给变量将是正确的方法 但我仍在学习该语言的过程中 我不知道如何实现这一
  • PHP 中是否有相当于 subprocess 的东西?

    在 Java 和 Python 中 你有ProcessBuilder or 子流程 https docs python org 2 library subprocess html可让您使用未转义字符串轻松启动进程的模块 例如 ls some
  • MySQL 将字符串视为整数

    我的申请有很大的问题 在开始之前我会红色这些主题Mysql 将 varchar 视为 int bug https stackoverflow com questions 17843329 mysql treating varchar as
  • 将字符串转换为关联数组键?

    给定一个包含由点分隔的值的字符串 property entry item 将其转换为关联数组的键的最佳方法是什么 result imported data property entry item 该字符串可以是任意长度 任意数量的点并包含一
  • 如何配置 FOSRestBundle 以不干扰自定义异常控制器

    我刚刚将我的 Symfony 2 7 页面更新到 2 8 除了 Symfony 本身之外 许多其他软件包也已更新 FOSRestBundle已从1 4版本更新至2 1版本 更新后CustomExceptionController我配置为Tw
  • 在 CGI 模式下运行时如何覆盖 PHP 配置

    有一些教程告诉我如何在 CGI 模式下运行时覆盖 PHP 配置 但我仍然很困惑 因为很多人都认为服务器运行在 Linux 上 虽然我需要这样做also在 Windows 上 我的主机确实使用 Linux 但我的本地开发计算机使用 Windo
  • Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException 没有消息 Laravel 5.5

    这让我很头疼 尝试从表单登录时出现此错误 Symfony 组件 HttpKernel 异常 MethodNotAllowedHttpException 没有消息 登录控制器 php
  • mysql_escape_string VS mysql_real_escape_string

    我知道mysql escape string从 5 3 开始已弃用 但实际差异是什么mysql real escape string 我的想法是mysql real escape string与以下完全相同mysql escape stri
  • 会话变量从 while 循环发送特定变量

    我有这个简单的while 循环它从 mysql 查询中检索数据并在我的主页上显示几个链接 我想避免使用 php get 函数并将查询字符串添加到我的网址中 我正在考虑使用会话变量 但我需要帮助 而且我很确定这是无法完成的 当访问者单击 wh

随机推荐