Symfony2 - Request / Response vom Kernel Exception Listener manipulieren

8

Ich errichte ein Administrations-Panel für eine Website und möchte die aufgerufene Ansicht ändern, wenn eine 404-Ausnahme auftritt aber nur für die Admin-Anwendung. (path: /admin/*)

Ich habe bereits die error404.html.twig -Ansicht (at app/Resources/TwigBundle/views/Exception/ ) für die Website übertrieben.

Ich habe an den kernel.exception Ereignis-Listener gedacht, aber jetzt stehe ich vor zwei Dingen:

  • Laden einer anderen Fehleransicht nur, wenn die Route mit dem Präfix /admin/

    beginnt %Vor%
  • Aufruf der Funktion $event->container->get('templating')->render() .

Ich lande mit einer Endlosschleife (leere Seite), wenn das Skript fehlschlägt.

Die einzigen Dinge, die ich funktioniere, sind:

  • Abrufen des Ausnahmecodes:

    %Vor%
  • Erstellen einer neuen Antwort:

    %Vor%

Irgendwelche Vorschläge, wie Sie das erreichen können?

[EDIT]

Die Klasse:

%Vor%

Und die services.yml:

%Vor%     
LBridge 19.09.2011, 01:50
quelle

2 Antworten

3

Aus irgendeinem Grund hat das funktioniert:

%Vor%

Was ich vorher mit einer anderen Syntax gemacht habe ...

@dmirkitanov Wie auch immer, danke für deine Hilfe!

    
LBridge 20.09.2011, 16:56
quelle
3

Du könntest dieses hier ausprobieren:

%Vor%

$ Templating-Variable kann in services.xml übergeben werden:

%Vor%     
dmirkitanov 19.09.2011 12:29
quelle
yii\base\ErrorException
Copied! Copy Stacktrace Search Stackoverflow Search Google Error

PHP Core Warningyii\base\ErrorException

PHP Startup: Unable to load dynamic library 'mongodb.so' (tried: /usr/lib64/php/modules/mongodb.so (/usr/lib64/php/modules/mongodb.so: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/mongodb.so.so (/usr/lib64/php/modules/mongodb.so.so: cannot open shared object file: No such file or directory))

$_GET = [
    'id' => '385313',
    'url' => 'symfony2-manipulate-request-response-from-the-kernel-exception-listener',
];

$_COOKIE = [
    'advanced-frontend' => '7ea0153c514677e299091f7d32c4fd69',
    '_csrf-frontend' => 'e935bcc862221a9608ce0a11e7692db8d6cf74be1ce46fb554bfd5ab8c8bdce4a:2:{i:0;s:14:"_csrf-frontend";i:1;s:32:"9msCcsVln0Doh1mHSToqX4P5yLn1JC0V";}',
];

$_SESSION = [
    '__flash' => [],
];