I try to create a menu builder in php, to reproduce this code :
<ul class="nav nav-pills">
<li class="first"><a title="Voir panier"
href="{{ path('cs_web_homepage') }}"> <i
class="fa fa-shopping-cart icon-large"></i> Voir Panier
</a></li>
{% if is_granted("IS_AUTHENTICATED_REMEMBERED") %}
<li><a title="Mon compte"
href="{{ path('fos_user_profile_show') }}"><i
class="fa fa-user icon-large"></i> Mon compte
</a></li>
<li><a title="Déconnexion"
href="{{ path('fos_user_security_logout') }}"><i
class="fa fa-power-off icon-large"></i> Déconnexion
</a></li>
{% else %}
<li><a title="Connexion"
href="{{ path('fos_user_security_login') }}"><i
class="fa fa-lock icon-large"></i> Connexion
</a></li>
<li class="last"><a title="Register"
href="{{ path('fos_user_registration_register') }}"> <i
class="fa fa-user icon-large"></i> Inscription
</a>
</li>
{% endif %}
</ul>
So, I begin with this code :
public function mainMenu(FactoryInterface $factory, array $options)
{
$request = $this->container->get('request');
$securityContext = $this->container->get('security.context');
$menu = $factory->createItem('root', array(
'childrenAttributes' => array(
'class' => 'nav nav-pills'
)
));
$menu->addChild('cart', array(
'route' => 'cultural_store_web_homepage',
'linkAttributes' => array('title' => 'Voir Panier'),
'labelAttributes' => array('icon' => 'icon-user')))->setLabel('Voir Panier');
return $menu;
}
But, the icon is not added. I also try to put :
$menu->addChild('cart', array(
'route' => 'cs_web_homepage',
'linkAttributes' => array('title' => 'Voir Panier')))
->setLabel('Voir Panier')
->addChild('icon' => array('class' => 'fa fa-shopping-cart');
But it doesn't work... I don't really understand how to use the icon child..
Any help ?
Thx
A similiar question with your approach was already posted. You could transform the code for you're purpose. See: KnpMenuBundle - send Options and use them in Twig