2012-03-07 3 views
14

Ho adattato il nostro codice in preparazione dello spostamento del nostro codice al nuovo codice 2.1 Symfony.Imposta Flash in Symfony 2.1

in 2.0. * Potremmo impostare i messaggi istantanei, semplicemente chiamando il servizio di sessione nel nostro controller utilizzando il seguente

$this->get('session')->setFlash('type', 'message'); 

ho spulciato attraverso la nuova documentazione, mi stavo chiedendo se ci fosse un modo pulito , simile a quanto sopra; piuttosto che chiamare semplicemente FlashBagInterface?

+0

Ahh, bingo! $ this-> get ('session') -> getFlashBag() -> set ('tipo', 'messaggio'); – michaelotoole

risposta

21

Prova:

$this->get('session')->getFlashBag()->set('type', 'message'); 
+0

Perfetto, grazie mille. –

13

Inoltre, si potrebbe desiderare di provare il metodo add() invece, che non cancellare altri messaggi flash:

$this->get('session')->getFlashBag()->add('type', 'message'); 
0

FYI:

Lo Symfony HttpFoundation componente ha un sottosistema di sessione molto potente e flessibile che è progettato per fornire la gestione delle sessioni attraverso una semplice interfaccia orientata agli oggetti utilizzando una varietà di se driver di archiviazione ssion.

FlashBagInterface ha una semplice API:

  • set(): Imposta un attributo per chiave;
  • get(): ottiene un attributo per chiave;
  • all(): Ottiene tutti gli attributi come una matrice di chiave => valore;
  • ha(): restituisce true se l'attributo esiste;
  • replace(): imposta più attributi contemporaneamente: accetta un array con chiave e imposta ciascun tasto => valore coppia;
  • remove(): elimina un attributo per chiave;
  • chiaro(): cancella tutti gli attributi.

Fonte: Symfony2: Session Management