Skip to content
softeg edited this page Sep 29, 2014 · 4 revisions

Controlleur

Appeler un template avec des parametres ou sans

return $this->render('SdzBlogBundle:Blog:index.html.twig');
Générer des URL
$url = $this->generateUrl('sdzblog_voir', array('id' => $id));

Générer URL en Absolu

$url = $this->generateUrl('sdzblog_voir', array('id' => $id), true);
Les paramètres hors routes

Récupérer Les paramètres hors routes exemple GET POST ..etc // On récupère la requête

$request = $this->getRequest();

// On récupère notre paramètre tag

$tag = $request->query->get('tag');
$request = $this->getRequest();

Type de paramètres

Méthode Symfony2

Méthode traditionnelle

Exemple

Variables d'URL

<?php $request->query

$_GET

<?php $request->query->get('tag')

Variables de formulaire

<?php $request->request

$_POST

<?php $request->request->get('tag')

Variables de cookie

<?php $request->cookies

$_COOKIE

<?php $request->cookies->get('tag')

Variables de serveur

<?php $request->server

$_SERVER

<?php $request->server->get('REQUEST_URI')

Variables d'entête

<?php $request->headers

$_SERVER['HTTP_*']

<?php $request->headers->get('USER_AGENT')

Paramètres de route

<?php $request->attributes

n/a

<?php $request->attributes->get('id')
Est équivalent à :
<?php $id

Récupérer la méthode de la requête HTTP
if( $request->getMethod() == 'POST' )
{
  // Un formulaire a été envoyé, on peut le traiter ici
}
Savoir si la requête est une requête AJAX
if( $request->isXmlHttpRequest() )
{
  // C'est une requête AJAX, retournons du JSON, par exemple
}
Réponse et redirection
return $this->redirect( $this->generateUrl('sdzblog_accueil', array('page' => 2)) );
Changer le Content-type de la réponse
// Créons nous-mêmes la réponse en JSON, grâce à la fonction json_encode()
   $response = new Response(json_encode(array('id' => $id)));
// Ici, nous définissons le Content-type pour dire que l'on renvoie du JSON et non du HTML
   $response->headers->set('Content-Type', 'application/json');
   return $response;
   // Nous n'avons pas utilisé notre template ici, car il n'y en a pas vraiment besoin
   Le raccourcis pour une réponse en json.
   return new JsonResponse(array('id' => $id));
Le message flash
// Le « flashBag » est ce qui contient les messages flash dans la session
    // Il peut bien sûr contenir plusieurs messages :
    $this->get('session')->getFlashBag()->add('info', 'Oui oui, il est bien enregistré !');
Récupérer le contenu d'un template
    // On utilise le raccourci : il crée un objet Response
    // Et lui donne comme contenu le contenu du template
    return $this->get('templating')->renderResponse(
      'OCPlatformBundle:Advert:view.html.twig',
      array('id'  => $id)
    );
$contenu = $this->renderView('SdzBlogBundle:Blog:email.txt.twig', array(
  'var1' => $var1,
  'var2' => $var2
));
return $this->render(
      'OCPlatformBundle:Advert:view.html.twig',
      array('id'  => $id)
    );

[Pour savoir l'ensemble des méthodes de l'objet request] (http://symfony.com/fr/doc/current/book/controller.html) (http://api.symfony.com/2.2/Symfony/Component/HttpFoundation/Request.html)

Clone this wiki locally