Этот вопрос закрыт для ответов, так как повторяет вопрос Как вывести в шаблон данные из базы?
deadloop
@deadloop
Активно осваиваю PHP

Как вывести данные из двух таблиц?

Есть таблица с записями Post. Есть таблица с Tag. Для каждой записи Post существует несколько Тэгов. как вывести для каждой записи свои Тэги?

А то для каждой записи выводится общее количество Тэг записей.

5f71b6122bb0c409008814.png

{% for posts in post %}
            <div class="row border-bottom pb-2 pt-2">
                <div class="col-md-3"><img src="{{ vich_uploader_asset(posts) }}" class="d-flex mr-3 img-thumbnail" alt="{{ posts.thumbnailFile }}"></div>
                <div class="col-md-9 pt-2">
                    <h4 class="mt-0 font-weight-bold"><a href="{{ path('single', {'post': posts.id }) }}">{{ posts.title }}</a></h4>
                    <p class="mb-0"><small><i class="far fa-calendar-alt pr-2"></i>{{ posts.createdAt|date("F jS \\a\\t g:ia") }}</small></p>
                    <a href="#" class="btn btn-primary btn-sm active mt-4" role="button" aria-pressed="true">{{ posts.category }}</a></br>
                    {% for tags in tag %}
                        <a href="#" class="btn btn-primary btn-sm active mt-4" role="button" aria-pressed="true">{{tags}}</a>
                    {% endfor %}
                </div>
            </div>
        {% endfor %}


Код из контроллера
<?php

namespace App\Controller;

use App\Entity\Category;
use App\Entity\Menu;
use App\Entity\Post;
use App\Entity\Tag;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;

class DefaultController extends AbstractController
{
    /**
     * @Route("/default", name="default")
     */
    public function index()
    {
        $em = $this->getDoctrine()->getManager();
        $post = $em->getRepository(Post::class)->findAll();
        $menu = $em->getRepository(Menu::class)->findAll();
        $category = $em->getRepository(Category::class)->findAll();
        $tag = $em->getRepository(Tag::class)->findAll();


        return $this->render('default/index.html.twig', [
            'controller_name' => 'DefaultController',
            'post'=>$post,
            'category'=>$category,
            'tag'=>$tag,
            'menu'=>$menu

        ]);
    }

    /**
     * @Route("/post/single/{post}", name="single")
     */
    public function single(Post $post)
    {
        return $this->render('default/single.html.twig', [
            'post'=>$post

        ]);
    }

}
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
@quiex
{% for tag in post.tags %}
Вы же сами забираете из бд все теги и рендерите в каждом посте, а вам нужны связанные.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы