Ich bin neu in Symfony und es bereitet mir große Schwierigkeiten, die Sitzungen festzulegen.symfony 3 Sitzungsvariable kann nicht gesetzt werden
Ich bin mir nicht sicher, was die Sitzungskonfiguration sein sollte, also versuche ich eine separate Klasse zu erstellen, die alle sitzungsbezogenen Funktionen behandelt.
Ich bin mir bewusst, dass das Objekt $ request enthält alle Sitzungsinformationen, aber den Zugriff auf es in einem Controller entgeht mir.
Auf der anderen Seite kann ich darauf zugreifen und es sogar auf Twig ändern, aber das ist nicht der richtige Weg, damit umzugehen, verstehe ich.
Wie es ist, wirft es ein Fehler
Aufruf einer Member-Funktion set() auf null
auf den
$ Session-> set (‚cart_ads ', 10);
Zeile in der Datei SessionManagerController.php. Es scheint also so zu sein, als würde die Variable $ session nicht auf null gesetzt.
Dies ist die Setup:
Auf app_dev.php, dh der Front-Controller.
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Debug\Debug;
use Symfony\Component\HttpFoundation\Session\Session;
use AppBundle\Controller\SessionManagerController;
/** @var \Composer\Autoload\ClassLoader $loader */
$loader = require __DIR__.'/../app/autoload.php';
Debug::enable();
$kernel = new AppKernel('dev', true);
//$kernel->loadClassCache();
$request = Request::createFromGlobals();
SessionManagerController::sessionAction($request);//error here***
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
SessionManagerController.php
namespace AppBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
class SessionManagerController extends Controller
{
public function sessionAction(Request $request)
{
$session = $request->getSession();
$session->set('cart_ads', 10); //error here***
}
}
Ihr Versuch, sessionAction aus app.php aufzurufen, ergibt keinen Sinn. Sie haben Zugriff auf die Sitzung innerhalb einer regulären Controller-Aktion. http://symfony.com/doc/current/controller.html#managing-the-session – Cerad
was meinst du mit "Ich bin mir bewusst, dass das $ request-Objekt enthält alle Sitzungsinformationen, aber den Zugriff auf es in einem Controller entgeht mir . " ? – lordrhodos
@Cerad, eigentlich arbeite ich mit Symfony 3.2.8, daher ist SessionInterface nicht verfügbar. Ich habe zwar versucht, Request $ Request zu injizieren, aber es gibt einen Fehler, der besagt, dass ich keine Instanz von $ request angegeben habe. Am Ende funktioniert es laut Rendy Eko Prastiyo Antwort, aber ich hätte gerne innerhalb des Controllers getan. – BernardA