How to passing data from a page to a .twig Template
1. Create in src\AppBundle\Controller\LuckyController.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php // src/AppBundle/Controller/LuckyController.php namespace AppBundle\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Symfony\Component\HttpFoundation\Response; use Symfony\Bundle\FrameworkBundle\Controller\Controller; // to extend Controller class LuckyController extends Controller // extends Controllers of Symfony { /** * @Route("/lucky/number") */ public function numberAction() // my function { $number = mt_rand(0, 100); // random PHP function // send the variable to a .twig template return $this ->render( 'lucky/number.html.twig' , array ( 'number' => $number , )); } } |
2. Create in app\Resources\views\lucky\number.html.twig
1 2 3 | {# app/Resources/views/lucky/number.html.twig #} < h1 >Your lucky number is {{ number }}</ h1 > |
NOTICE:
a. The namespace to exted standard Controller of Symfony:
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
b. The class have to extend the Controller namespace:
class LuckyController extends Controller
c. render using lucky/number.html.twig the array key ‘number’ with value $number
return $this->render(‘lucky/number.html.twig’, array(
‘number’ => $number,
d. the template receive the value of number
1 2 3 4 5 | <h1>Your lucky number is {{ number }}</h1> {{ number }} -> this is the syntax of .twig to get the value sent by public function numberAction() {# app/Resources/views/lucky/number.html.twig #} -> this is a comment only in .twig syntax |