【发布时间】:2018-04-11 10:48:49
【问题描述】:
我有一个 HomeBundle,其中有默认控制器,它有 2 个操作:一个用于渲染 index.html.twig,另一个用于渲染导航栏的一部分。在我的视图中,我拥有其余视图扩展的默认布局。
我想匹配 Default 控制器中第二个操作的路由,以将其内容呈现到任何路由。
这是 DefaultController 中的操作,我认为 name="/" 会匹配所有路由。
/**
* @Route("/", name="navbar_boutique")
*/
public function afficherBoutiqueProductAction()
{
$em= $this->getDoctrine()->getManager();
$boutiques=$em->getRepository(Boutique::class)->findAll();
return $this->render('@Souk/Default/boutique_navbar.html.twig', array(
"boutiques"=>$boutiques
));
}
这是 Boutique_navbar.html.twig:
{%extends '@Souk/layout.html.twig'%}
{%block boutique %}
<ul class="list-links">
<li>
<h3 class="list-links-title">Liste des Boutiques</h3></li>
{% for b in boutiques %}
<li><a href="{{ path('afficher_produit_boutique',{'idboutique':b.id}) }}"> {{ b.nom }} </a></li>
{% endfor %}
</ul>
{% endblock boutique %}
至于 layout.html.twig 它包含基本模板,我只想在其导航栏中显示一个元素。 (这是商店列表)
我做错了什么?
ps:例如,当我添加 @Route="/test" 时,它只适用于 /test,我希望它适用于所有路由。
【问题讨论】:
-
不,不是。我正在使用注释并且我不是在寻找错误处理,它只是导航栏列表中的一个元素,必须从 DefaultController 中的操作填充(我只是获取所有商店并在导航栏)
标签: php routing twig symfony3.x