I want to retrieve Cities names from a table in the database and put them as options in a select input (combobox) which is defined in 'layout.html.twig' . All my views extends 'layout.html.twig', so how can I access to cities names in every page?
[Solution]
I'm not able to respond to my topic ,I didn't have much reputation so I edit my topic
I have found the solution, using "embedding controllers"
first I've created an action to retreive all cities names:
public function listCitiesAction(){ // retreiving cities $entities = $this->getDoctrine()->getRepository("MedAdBundle:City")->findAll(); return $this->render('MedAdBundle:Ville:list_cities.html.twig', array('entities' => $entities)); }
this action render list_cities.html.twig defined as :
<select class="form-control"> {% for entity in entities %} <option>{{ entity.name}}</option> {% endfor %} </select>
finnaly I edit my layout.html.twig
<div> {{ render(controller('MedAdBundle:City:listCities'))}} </div>
In this way I can access to cities combobox in every page in my app ;)
It's well explained in the cookbook.
http://symfony.com/doc/current/cookbook/templating/global_variables.html
I would go with these steps:
As an optimization I would look how I could wire Doctrine with some caching system (eg memcached) to avoid hitting the database on each page load.
This is where you can find documentation about the entity field: http://symfony.com/doc/current/reference/forms/types/entity.html
Use the Symfony documentation to find how to define a form as a service and how to write your own twig extension.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.