Jednym z najczęstszych wzorców routingu jest to, że pierwsza linia dowolnej metody kontrolera próbuje znaleźć zasób z podanym identyfikatorem.
Trasa :: 'Stores/id', funkcja ($ id)Laravel zapewnia funkcję, która upraszcza ten wzór zwany „wiązaniem modelu trasy.„Pozwala to zdefiniować tę nazwę parametru (e.G., ).
Istnieją dwa rodzaje wiązania modelu trasy: niejawne i niestandardowe (lub jawne).
Niejawne wiązanie modelu trasy
Najprostszym sposobem korzystania z wiązania modelu trasy jest nazwanie parametru trasy coś wyjątkowego dla tego modelu (e.G., Nazwij go $ sklep zamiast $ id), a następnie typehint ten parametr w metodzie zamknięcia/kontrolera i użyj tam tej samej nazwy zmiennej. Łatwiej jest pokazać niż opisać, więc spójrz na następny przykład:
Jawne wiązanie modelu trasy
Trasa :: 'Stores/Store', funkcja (suppe $ store)Ponieważ parametr trasy (Store) jest taki sam jak parametr metody ($ Store), a parametr metody jest typowy modelem konferencyjnym (sklep $ Store), Laravel postrzega to jako wiązanie modelu trasy. Za każdym razem, gdy ta trasa jest odwiedzana, aplikacja zakłada, że wszystko, co jest przekazywane do adresu URL zamiast Store, jest identyfikatorem, który powinien być używany do wyszukiwania sklepu, a następnie, że wynikowa instancja modelu zostanie przekazana do zamykania lub kontrolera metoda.
Niestandardowe wiązanie modelu trasy
Aby ręcznie skonfigurować wiązanie modelu trasy, dodaj linię taką jak ta w poniższym przykładzie do uruchomić()
metoda w App \ dostawcy \ routeserviceProvider
.
Zdefiniowałeś teraz, że za każdym razem, gdy trasa ma parametr w swojej definicji o nazwie shop, Route Resolver zwróci instancję klasy sklepowej z identyfikatorem tego parametru URL.