2016-10-25 7 views
1

Kann jemand diese Zeilen erklären? Wie es funktioniert?Was bedeutet Route :: Model in Laravel?

public function boot() 
{ 
    parent::boot(); 

    Route::model('user', App\User::class); 
} 

Als nächstes definieren eine Route, die einen {user} Parameter enthält:

Route::model('user', App\User::class); 

Sie sagen:

$router->get('profile/{user}', function(App\User $user) { 
    // 
}); 
+0

Unklare, bitte bearbeiten und geben einige Details, Kontext und was Sie wollen achive. – kebs

+0

Bitte lesen Sie die Dokumentation https://laravel.com/docs/5.3/routing – frieder

Antwort

3

Diese Route Model Explicit Binding

Damit wird aufgerufen, wenn ein 'user' Zeichenfolge wird in einer Route als Parameter verwendet, erstellen Sie ein Modell von App\User::class für mich, das hat die gleiche ID wie der Parameter an die Route übergeben. Dann injizieren Sie das Modell in den route-Methodenhandler.

Zum Beispiel die URL: 'profile/10' wird diese Route entspricht:

$router->get('profile/{user}', function(App\User $user) { 
    // 
}); 

Und das App\User Modell mit der ID 10 wird automatisch von Laravel

Von einem allgemeinen Standpunkt aus abgerufen wird, in der Regel in Ihre Routen tun Sie etwas wie folgt aus:

public function edit($id) 
{ 
    //fetch the user from db... 
    $user = User::find($id); 

    //do something with the $user... 
} 

mit der Route Modell Bindung Sie tun können:

public function edit(App\User $user) 
{ 
    //do something with $user... 
} 

vermeidet das Modell aus der Datenbank zu holen: Laravel wird es für Sie tun