2016-12-12 4 views
0

Ich habe ein Projekt, das Silex 1.2 zusätzlich zur Aktualisierung auf Version 2 verwendet. Die dynamische Installation von Routen in einem Controller funktioniert nicht mehr. Meine neuen Routen werden nicht gespeichert.Silex 2 - Wie öffne ich dynamische Routen? Wie in Version 1 von Silex

// routing.php 
$app->get('/', 'App\\Controllers\\App::main')->bind('app_main'); 

// App.php 
class App { 
    function main(Application $app, Request $request) { 
     $name = 'basic'; 
     $version = 1; 

     $moduleClass = 'App\Core\Modules\\'.$name.'\v'.$version.'\\ControllerProvider'; 
     $app->mount($request->getPathInfo(), new $moduleClass($name, $version)); 

     $subRequest = Request::create(
      $app['url_generator']->generate('basic_1'), 
      'POST' 
     ); 

     return $app->handle($subRequest, HttpKernelInterface::SUB_REQUEST, false); 
    } 
} 

Und meine Anwendung kann nicht die neue Route finden, diesen Code Arbeit mit Silex 1.2 ... Ich kann nicht finden, was in der Version 2.

+0

Namen Ihre Klasse ist 'Routing' sollte die Route-Controller als' App \\ Controller \\ Routing :: main' nicht sein? – martin

+0

Ja, tut mir leid, es ist ein Fehler in meinem Beispiel. – Romain

Antwort

1

Sie müssen flush Sammlung der Controller geändert hat. Nachdem Sie mount sie nennen dies:

$app->flush(); 
+1

Ja, funktioniert! Vielen Dank !!! – Romain