2017-01-06 5 views
1

vor allem, ich bin völlig grün bei der Verwendung von Laravel, also bitte mit mir :) Thing ist, ich versuche, eine neue Blade-Routing der Datei routes.php hinzufügen, die grundlegende Zeug, denke ich.Laravel benutzerdefinierte Blade-Routing-Probleme

Zum Beispiel:

Route::get('testing', array('as' => 'testing', function() 
    { 
     return View::make('testing'); 
    })); 

Nach dem Speichern bekomme ich diesen Fehler:

Fatal error: Uncaught exception 'Illuminate\Database\Eloquent\ModelNotFoundException' with message 'No query results for model [App\Models\Page].' in /var/www/htdocs/myappname/vendor/illuminate/database/Illuminate/Database/Eloquent/Builder.php:126 Stack trace: #0 /var/www/htdocs/myappname/app/Models/Page.php(100): Illuminate\Database\Eloquent\Builder->firstOrFail() 
#1 [internal function]: App\Models\Page->scopeFindByReference(Object(Illuminate\Database\Eloquent\Builder), 'testing') 
#2 /var/www/htdocs/myappname/vendor/illuminate/database/Illuminate/Database/Eloquent/Builder.php(834): call_user_func_array(Array, Array) 
#3 /var/www/htdocs/myappname/vendor/illuminate/database/Illuminate/Database/Eloquent/Builder.php(915): Illuminate\Database\Eloquent\Builder->callScope('scopeFindByRefe...', Array) 
#4 [internal function]: Illuminate\Database\Eloquent\Builder->__call('findByReference', Array) 
#5 [internal function]: Illuminate\Database\Eloquent\Builder->findByReference('testing') in /var/www/htdocs/myappname/vendor/illuminate/database/Illuminate/Database/Eloquent/Builder.php on line 126 

Im routes.php gibt es so etwas, aber es lädt die Klinge nicht statt es lädt eine Seite, die in den cms erstellt wurde, die einen Slug-Test haben. Wenn ich diese Seite lösche oder umbenenne, erscheint der normale 404-Fehler.

if ($page->slug == 'testing') { 
      $page->view = 'testing_homebld'; 
     } 

Ich weiß nicht, was ich sonst noch tun soll, da der App-Entwickler keine Dokumentation hinterlassen hat.

Danke für die Hilfe Mädels und Jungs!

+0

warum nicht Route :: get ('testen', funktion() {return View :: make ('testen');}); ? – Mazzy

+0

Der Fehler besagt, dass ein Seitenmodell nicht gefunden werden kann. Versucht Ihre Anwendung, irgendwo eine Instanz zu erstellen (in der Ansicht oder im Idealfall der Controller)? Welche Version von Laravel benutzt du? – Birdman

+0

Hallo, Wenn ich verwende, bekomme ich diesen Fehler: Schwerwiegender Fehler: Klasse "Route" nicht in /var/www/htdocs/myappname/routes.php auf Linie 201 gefunden Wirklich seltsam. :/ – Ompa

Antwort

0

Klingt, als hätten Sie einen Routing-Konflikt. Der if ($page->slug == 'testing') { Code ist wahrscheinlich in einem PageController.php Controller, denke ich (nicht routes.php wie du sagst); Der Fehler msg beschreibt auch das Page-Modell. Das deutet darauf hin, dass ein anderes Routing Ihre Anfrage bearbeitet, nicht Ihre Testroute.

Meine Vermutung ist, dass Sie so etwas wie dies in routes.php haben, die Ihre Anfrage an http://your-site/testing (Controller-Namen und Verfahren offensichtlich etwas in Ihrem Code sein könnte) ist ansteckend:

Route::get('/{slug}', '[email protected]'); 

Dies würde passen und zu handhaben eine Anfrage an http://your-site/testing.

Ihre neue Testroute erscheint wahrscheinlich nach diese Seitenroute, was bedeutet, dass sie ignoriert wird - die erste zu überprüfende Route hat Vorrang und nachfolgende Übereinstimmungen werden ignoriert.

Die schnellste Lösung besteht darin, Ihre neue Testroute über die widersprüchliche Seitenroute zu verschieben, damit sie Vorrang hat.

+0

Hey, wenn ich fügen Sie den Code oben ich diesen Fehler: Fatal error: Class 'Route' gefunden, nicht in /var/www/htdocs/myappname/routes.php on line 201 wirklich seltsame Dinge sind passiert, denke ich muss weiter durch die Dateien graben und herausfinden, was zum Teufel ist los. Schätzen Sie alle Antworten! – Ompa

+0

Welchen Code hinzufügen? Ich habe lediglich vorgeschlagen, den vorhandenen Code in die routes-Datei zu verschieben. –

Verwandte Themen