fetched_news.comments.content
or
fetched_news.news.content
I was looking for the answer on many pages, but I couldn't find something interesting.
From twig:
{% 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 %}
From Controller:
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);
}
Code from 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
Thanks for help!
Entity class Comments:
/**
* @ORM\ManyToOne(targetEntity="News", inversedBy="comments")
* @ORM\JoinColumn(name="news_id", referencedColumnName="id")
*/
protected $news;
Entity class News:
/**
* @ORM\OneToMany(targetEntity="Comments", mappedBy="news")
*/
protected $comments;
public function __construct()
{
$this->comments = new \Doctrine\Common\Collections\ArrayCollection();
}
Given the following code:
$repository = $this->getDoctrine()->getRepository('BlogAdminBundle:News');
$query = $repository->createQueryBuilder('p')
->where('p.date_active < :date')
->setParameter('date', new \DateTime())
->getQuery();
$fetched_news = $query->getResult();
This should work in twig:
{% for news_article in fetched_news %}
{{ news_article.content }}
{% for comment in news_article.comments %}
{{ comment.content }}
{% endfor %}
{% endfor %}
Each of your news articles has an array of comments. I think you're just getting a little mixed up with your $fetched_news
variable =).
Edit: I had a small mistake in my code. I had fetched_news.news
in the outer loop, and that should be just feteched_news
since that variable is the array of news articles.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.