Eines der häufigsten Routing -Muster ist, dass die erste Zeile jeder Controller -Methode versucht, die Ressource mit der angegebenen ID zu finden.
Route :: get ('store/id', function ($ id)Laravel bietet eine Funktion, die dieses Muster mit dem Namen „Routenmodellbindung vereinfacht.Dies ermöglicht Ihnen, diesen Parameternamen (e) zu definieren.G., (speichert) Zeigt auf den Route Resolver an, dass er mit dieser ID einen beredten Datensatz nachschlagen und dann als Parameter weitergeben sollte, anstatt nur die ID zu übergeben.
Es gibt zwei Arten von Routenmodellbindung: implizit und individuell (oder explizit).
Implizite Routenmodellbindung
Der einfachste Weg, die Routenmodellbindung zu verwenden, besteht darin, Ihren Routenparameter etwas einzigartiges für dieses Modell zu benennen (e.G., Nennen Sie es $ Store anstelle von $ id), dann typeTt diesen Parameter in der Verschluss-/Controller -Methode und verwenden Sie dort den gleichen variablen Namen. Es ist einfacher zu zeigen als zu beschreiben. Schauen Sie sich also das nächste Beispiel an:
Explizite Routenmodellbindung
Route :: get ('Store/Store', Funktion (speichern $ store)Da der Routenparameter (Store) der Methodeparameter ($ Store) übereinstimmt und der Methodeparameter mit einem Konferenzmodell (Store $ Store) angedeutet wird, sieht Laravel dies als Routenmodellbindung an. Jedes Mal, wenn diese Route besucht wird, wird die Bewerbung angenommen, dass alles, was anstelle von Store in die URL übergeben wird Methode.
Benutzerdefinierte Routenmodellbindung
Um die Routenmodellbindung manuell zu konfigurieren Stiefel()
Methode in App \ Providers \ RouteServiceProvider
.
Sie haben jetzt definiert, dass der Routenresolver, wenn eine Route einen Parameter in seiner Definition mit dem Namen Shop hat, eine Instanz der Store -Klasse mit der ID dieses URL.