Спасибо @Jannes Botis за обновление.Но в моем случае сам код неверен.Здесь нужно небольшое изменение.
BlogTags.php
/**
* @ORM\ManyToMany(targetEntity="BlogPost", mappedBy="blogTags")
*/
private $blogPosts;
BlogPost.php
/**
* @var Collection|BlogTags[]
*
* @ORM\ManyToMany(targetEntity="BlogTags", inversedBy="blogPosts", cascade={"refresh"})
* @ORM\JoinTable(
* name="fz__blog_n_tag",
* joinColumns={
* @ORM\JoinColumn(name="blog_id", referencedColumnName="id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="tag_id", referencedColumnName="id")
* }
* )
* @ORM\OrderBy({"name": "ASC"})
*/
private $blogTags;
Это создало join_table. Уже у меня есть join_table.Хотя этот код для справки.
Controller.php
// This is my old Code
$bp = $em->getRepository('App:BlogPost')->getAllActivePostsByTags($slug, "DESC", $page, self::PAGE_LIMIT);
// This is my New Code
$bp = $em->getRepository('App:BlogTags')->getAllActivePostsByTags($slug, "DESC", $page, self::PAGE_LIMIT);
Repository.php
public function getAllActivePostsByTags($value, $order = "DESC", $currentPage = 1, $limit = 10)
{
$query = $this->createQueryBuilder('t')
->select('t','p','tx')
->innerJoin('t.blogPosts', 'p')
->innerJoin('p.blogTags', 'tx')
->where('p.isActive = :val1')
->andWhere('t.slug = :val2')
->setParameter('val1', true)
->setParameter('val2', $value)
->orderBy('p.id', $order)
->getQuery();
$paginator = $this->paginate($query, $currentPage, $limit);
return $paginator;
}
Я не полностью изменил свой старый файл ветки,Как это выдает ошибку во многих местах.Потому что сейчас я использую тэги репо вместо блога.Поэтому я изменил веточку с помощью
{% include 'frontend/page/blog_home.html.twig' with { 'bp':bp|first.blogPosts } %}
Помогите мне в этом (файл ветки): Существует только один тег, поэтому | первый фильтр ветки Уточните меня с помощью этого фильтра ветки.У меня все хорошо.Дайте мне предложение улучшить его.Я пробовал bp [0]. Это выдает ошибку.
Наконец: При использовании старого кода в контроллере возвращается 14 дБ.Теперь он возвращает только 8. Даже в сообщении больше тегов (но старый возвращает больше).