Mod?le d`itin?raire

Si une instance de mod?le correspondante est introuvable dans la base de donn?es, une r?ponse HTTP 404 sera g?n?r?e automatiquement. Vous pouvez en savoir plus sur la liaison de mod?le de route dans la documentation. En utilisant la fa?ade route pour lier un param?tre ? un mod?le, nous pouvons faire quelque chose comme ceci: en travaillant avec beaucoup de terminaux et de contr?leurs, il est agr?able de les garder propres autant que possible. De petites solutions comme la liaison de mod?le de route de Laravel nous aident ? garder nos contr?leurs plus propres. 1) il doit charger l`utilisateur via la liaison de mod?le de route, puis…. Par d?faut, l`infrastructure recherche la colonne ID dans notre base de donn?es. Si nous voulons utiliser une autre cl? pour notre reliure, nous pouvons la personnaliser dans nos mod?les ?loquent. Tout ce que nous avons ? faire est d`ajouter la m?thode getRouteKeyName au mod?le que nous voulons modifier. Tout comme le nom l`indique, vous devez explicitement dire ? laravel que vous voulez qu`il lie un param?tre d`URL ? un mod?le particulier. Il y a deux fa?ons de le faire, nous pourrions lier un param?tre ? un mod?le ? l`aide de la fa?ade de route fournie ou effectuer cette liaison dans App/Providers/RouteServiceProvider. php (je pr?f?re cette m?thode). Comme nous le voyons, il y a une ligne suppl?mentaire dans notre m?thode, o? nous regardons le mod?le ?loquent pertinent. Nous pouvons automatiser cette ?tape en utilisant la liaison.

Nous pouvons le faire de mani?re explicite et implicite. Bien que nous ayons vu la liaison de mod?le explicite, voici un exemple de liaison de mod?le implicite maintenant: nous pourrions ?galement donner ? notre liaison plus de sens, par exemple ce que si nous voulons un poste que si est un projet? Pour cela, nous pourrions changer le deuxi?me param?tre de la route:: bind ? une fermeture qui prend le param?tre d`itin?raire comme sa valeur. Ceci est rendu possible en disant ? Laravel d`injecter un mod?le de poteau dans n`importe quel contr?leur de route qui a un param?tre {post} attach? ? lui. Les param?tres de routage sont toujours encastr?s dans les accolades {} et doivent comporter des caract?res alphab?tiques et ne peuvent pas contenir de caract?re. Au lieu d`utiliser le caract?re-, utilisez un trait de soulignement (_). Les param?tres d`art?re sont inject?s dans des rappels/contr?leurs d`art?re bas?s sur leur ordre-les noms des arguments de rappel/contr?leur n`ont pas d`importance. Maintenant, Laravel r?soudra automatiquement la cat?gorie ? l`aide du param?tre ID et l?vera une exception si le mod?le n`existe pas. La seule diff?rence entre l`utilisation de la fa?ade route et de la classe RouteServiceProvider est que-l`enregistrement de vos liaisons se fait dans la m?thode de d?marrage de la classe RouteServiceProvider (l`emplacement est le r?pertoire App/Providers) et la m?thode Bind est appel?e sur le $router l`objet inject? dans la m?thode. Exemple rapide nous testons pour voir si l`exception lev?e est une instance de ModelNotFoundException.

Nous pouvons ?galement tester le nom du mod?le pour afficher le message d`erreur appropri?.