2014-09-05 6 views

risposta

19

Un modo di usare sessioni in Symfony controller è:

impostazione:

$this->get('session')->set('loginUserId', $user['user_id']); 

ottenere:

$this->get('session')->get('loginUserId'); 

Se si utilizza standard di f QUADRO edizione

+0

grazie Gabriel ... –

+0

Se la mia risposta è stata utile hai potuto segnarlo come risposta per il tuo problema? –

+0

se questo metodo è applicabile per usare quelle variabili di sessione in tutto il mio controller? –

2

http://symfony.com/doc/current/components/http_foundation/sessions.html

use Symfony\Component\HttpFoundation\Session\Session; 

    $session = new Session(); 
    $session->start(); 

    // set and get session attributes 
    $session->set('name', 'Drak'); 
    $session->get('name'); 

    // set flash messages 
    $session->getFlashBag()->add('notice', 'Profile updated'); 

    // retrieve messages 
    foreach ($session->getFlashBag()->get('notice', array()) as $message) { 
    echo '<div class="flash-notice">'.$message.'</div>'; 
    } 
+0

grazie Charles .... –

9

Dalla documentazione:

sessioni di Symfony sono progettati per sostituire diverse funzioni native di PHP. applicazioni dovrebbero evitare di usare session_start(), session_regenerate_id(), session_id(), session_name(), e session_destroy() e invece utilizzare le API nella sezione seguente.

e:

Mentre si consiglia di iniziare in modo esplicito una sessione, a sessioni effettivamente iniziare a richiesta, cioè, se qualsiasi richiesta di sessione è fatto per i dati della sessione/scrittura lettura.

Quindi le sessioni vengono avviate automaticamente e si può accedere ad es. dai controllori tramite:

public function indexAction(Request $request) 
{ 
    $session = $request->getSession(); 
    ... 
} 

o:

public function indexAction() 
{ 
    $session = $this->getRequest()->getSession(); 
    // or 
    $session = $this->get('session'); 
    ... 
} 

di:

// store an attribute for reuse during a later user request 
$session->set('foo', 'bar'); 

// get the attribute set by another controller in another request 
$foobar = $session->get('foobar'); 

// use a default value if the attribute doesn't exist 
$filters = $session->get('filters', array()); 
Problemi correlati