2017-02-26 5 views
0

Hier ist mein Routing-Code:Lumen Routing funktioniert nicht

$app->get('/foo', function() { 
    return 'Hello World'; 
}); 
$app->get('/', function(){ 
    return 'asd'; 
}); 

das Problem ist, dass ich „asd“ immer auf der Seite, auch wenn ich einige zufällige Route besuchen, die es nicht gibt. Also, wenn ich localhost/sadgasgasdgsa besuche, werde ich 'asd' auf der Seite bekommen. Ich bekomme auch 'asd', Instant 'Hallo Welt', wenn ich localhost/foo besuche. Irgendwelche Ideen, was das Problem sein kann?

Hinweis: Dies scheint die gleiche Frage: Lumen routes not working other than '/' route jedoch niemand die Frage beantwortet hat. Meine Serverbestätigung einfach WAMP, PHP 7, Apache2 und MySQL. Während für Lösung suchen, habe ich die folgende .htaccess-Datei:

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L] 

jedoch nicht EDIT Für diejenigen arbeitet, die hier mit der Suchmaschine kam, habe ich die Version von Lumenherabgestuft, und es fing an zu arbeiten.

Antwort

1

Upgrade von Lumen 5.3 auf 5.4 und hatte das gleiche Problem, nur '/' Route funktioniert.

Digging in ergab, dass ich den Code als Lösung für ein früheres Problem in Lumen 5.2 gebrochen hatte, die nach dieser populären answer behoben wurde.

Problem wurde in Bootstrap/index.php:

$app->run($app->make('request'))

Eingangsparameter $app->make('request'), die als fix von Laravel 5.2 Problem hinzugefügt wurde, ein leeres Anforderungsobjekt hergestellt, das tatsächliche Anforderungsdaten fehlte. Deshalb hat das Standard-'/' begonnen, das Request-Objekt hatte keine Pfadinformationen.

Ich sah die ursprüngliche public/index.php Datei in Github und $app->run() hatte keinen Parameter. Als ich den Eingangsparameter $app->make('request') löschte, begann die App zu arbeiten.