recherche

Maison  >  Questions et réponses  >  le corps du texte

Comment interroger et afficher des données dans Symfony2 layout.html.twig ?

S'il y a des parties publiques dans layout.html.twig, telles que la barre latérale, qui doivent être interrogées et affichées, quelle est la meilleure façon de le faire ?

过去多啦不再A梦过去多啦不再A梦2791 Il y a quelques jours654

répondre à tous(2)je répondrai

  • phpcn_u1582

    phpcn_u15822017-05-16 16:48:16

    http://symfony.cn/docs/quick_tour/the...

    répondre
    0
  • 世界只因有你

    世界只因有你2017-05-16 16:48:16

    Deux méthodes :

    1. Séparez un fichier .twig (tel que test.twig) dans la mise en page où les données doivent être lues à partir de la base de données et utilisez la méthode render Controller dans la mise en page :

    {{ render(controller('AppBundle:ControllerName:MethodName', { 'params': 3 })) }}

    Dans ControllerName::MethodName, rendu le fichier test.twig :

    public function MethodName($params)
    {
        $repository = $this->get('doctrine.orm.entity_manager')
            ->getRepository('AppBundle:EntityName');
        
        return $this->render('AppBundle:ControllerName:test.twig', array(
            'result' => $repository->findByParams($params)
        ));
    }

    2. Utilisez l'événement KernelResponse pour ajouter dynamiquement des variables globales

    
    public function __construct(ContainerInterface $container)
    {
        // container 需要通过 service.yml 注入
        $this->container = $container;
    }
    
    public function onKernelResponse()
    {
        $twig = $this->container->get('twig');
        $em   = $this->container->get('doctrine.orm.entity_manager');
        
        $repository = $em->getRepository('AppBundle:EntityName');
    
        $twig->addGlobal('result', $repository->findByParams());
    }

    Seul le code principal est écrit, vous devez également configurer le service

    répondre
    0
  • Annulerrépondre