Einführung
Laravel Route Model Binding ist eine großartige Möglichkeit, Ihre Entwicklung zu beschleunigen und Ihren Code ein wenig aufzuräumen. Laravel Route Model Binding bietet eine bequeme Möglichkeit, Klasseninstanzen in Ihre Routen zu injizieren.
Anstatt beispielsweise die ID eines Benutzers zu injizieren, können Sie die gesamte Instanz der Klasse User injizieren, die der angegebenen ID entspricht.
Grundlegendes Routing
Die meisten der Routen in Ihrer Anwendung befinden sich in /routes/web.php Datei, die geladen werden durch App\Providers\RouteServiceProvider
class. Die grundlegendste Laravel-Route akzeptiert einen URI und einen Abschluss.
<?php Route::get('/', function(){ return 'Hello world'; });
Beispiel
Nehmen wir an, wir möchten einen Benutzer anhand seiner ID besuchen. Normalerweise haben wir die folgende Route eingerichtet, um dies zu erreichen.
<?php Route::get('/users/{id}', function($id, App\User $user){ $user = $user->findOrFail($id); dd($user->name); });
Route Model Bindung
Mit Laravel Route Model Binding vereinfacht sich dieser Prozess bis zu einem gewissen Grad und es ist ein ziemlich einfacher Weg, um solche Dinge zu tun.
Um die Route Model-Bindung zu verwenden, müssen wir zunächst das Model innerhalb der boot()-Methode der RouteServiceProvider-Klasse registrieren.
<?php public function boot(Router $router) { parent::boot(); $router->model('user',User::class); }
Jetzt können wir die Benutzeranbindung innerhalb unserer /routes/web.php
Datei, um die gleichen Ergebnisse zu erzielen:
<?php Route::get('/users/{user}', function($user){ //we can now directly say dd($user->name); });
Letzte Worte
Laravel Route Model Bindung funktioniert gut mit verschachtelten URIs, die manchmal ziemlich schwierig, mit grundlegenden Routing zu bewältigen. Probieren Sie es also selbst aus und testen Sie, ob das für Sie funktioniert. Wenn Sie irgendwelche Rückmeldungen oder Kommentare haben, schreiben Sie sie in das Kommentarfeld unten. Sie können uns auch folgen auf Twitter.