2013-03-05 3 views

Antwort

9

Ja das ist schlecht.

Controller :: detect() ist eigentlich nicht in Laravel 4 vorhanden, weil es ein bisschen kaputt ist.

detect() wird durch Ihr Dateisystem gehen und Controller-Dateien zurückgeben, aber das ist eine schlechte Idee, weil die Reihenfolge, die Sie Ihre Routen Angelegenheiten. Wenn Sie irgendwelche verschachtelten Controller haben, werden Sie das sehr leicht finden.

detect() gibt auch Dateien in einer anderen Reihenfolge abhängig vom Dateisystem zurück, was zu einer großen Unberechenbarkeit führt.

Ich würde argumentieren, dass Sie alle Ihre Routen beliebig definieren sollten, es ist viel einfacher zu lesen und zu debuggen.

+0

Große Erklärung – wesside

5

Eines der interessanten Dinge über Laravel, das CI nicht hat, ist, dass Sie für bestimmte Seiten direkt zur Ansicht routen können, ohne dass ein Controller benötigt wird. Denken Sie über statische Seiten wie 'Über uns' nach. CodeIgniter würde Sie brauchen, um einen Controller + View dafür einzurichten, obwohl der Controller kaum etwas tun wird. Bei Laravel können Sie in diesem Fall direkt zu einer Ansicht routen.

Wenn Sie Routen manuell einrichten, können Sie diese kurzgeschlossenen Routen festlegen.

+0

Wirklich interessant zu zeigen. Vielen Dank! – Leabdalla

1

Automatische Erkennung ist eine schlechte Idee.

Sie können Routen verwenden oder Routen verwenden :: Controller ('MyController') oder und Array-Controller wie Routen :: Controller (array ('MyController', mycontroller2');

Dann erhalten Sie den Vorteil, ohne die automatische Erkennung.

1

in Laravel 4:

Sie Restful-Controller wie Dokumentation verwenden können http://laravel.com/docs/controllers#restful-controllers

Aber Route::controller() zwei Parameter als Mindestanforderung nehmen müssen erste Parameter für URL respond steht auf, und der zweite Parameter ist der Name des Controllers

auch

Sie dritten Parameter in Route::controller() schreiben ist ein Array mit den Namen von Aktionen (Name der Aktion mit HTTP-Verb) und Routen Namen für diese

ex Aktionen:

Route::controller('users','UsersController',array(
      'getUsers' =>"listUsers" , 
      )); 

Routennamen für GetUsers Aktion ist Listusers

-1

Im Folgenden ist ein gutes Beispiel folgen für CRUD und für allgemeine Zwecke Routing

Typ php arisan controller:make SampleController

bearbeiten routes.php und fügen

Route::resource('sample', 'SampleController'); 

Geben Sie dann php artisan routes die neu erstellten Routen

Verwandte Themen