Après avoir lu la documentation , je n'ai encore qu'une vague idée de quels sont les itinéraires nommés dans Laravel.
Pourriez-vous m'aider à comprendre?
Route::get('user/profile', 'UserProfileController@show')->name('profile');
Route::get('user/profile', function () { // })->name('profile');
Il dit:
Une fois que vous avez attribué un nom à une route donnée, vous pouvez utiliser le nom de la route lors de la génération d'URL ou de redirection via la fonction de route globale
Je ne comprends pas ce que signifie la deuxième partie de la phrase, sur la génération d'URL ou de redirection.
Quelle serait une URL générée dans le cas du profile
de l'exemple ci-dessus? Comment pourrais-je l'utiliser?
3 Réponses :
Après avoir ajouté un nom à une route, vous pouvez utiliser l'assistant route ()
pour créer des URL.
Cela peut maintenant être utilisé dans votre application.
Par exemple, dans vos modèles de lames, cela peut ressembler à:
{{ route('profile') }}
Cela utilisera l'url de l'application et le chemin de la route vers créer une URL.
@MagnusEriksson Compris et merci d'avoir ajouté. Je donnais juste un exemple de la façon dont il peut être utilisé.
voici à quoi ça ressemble:
exemple de route nommée name('store');
:
Route::get('/store-record','YourController@function')
store
est la route nommée ici. pour l'appeler utilisez route('store')
définissant un autre type d'itinéraire. ce n'est pas une route nommée:
Route::get('/store-record','YourController@function')->name('store');
vous pouvez accéder à cette route en utilisant {{url ('/ store-record')}}
p >
j'espère que cela aidera
La meilleure ressource se trouve ici: https://laravel.com/docs/ 5.8 / routing # named-routes
Un des cas d'utilisation courants est dans vos vues. Supposons que votre demande de publication soit dirigée vers un itinéraire particulier, essentiellement sans itinéraires nommés, vous pouvez simplement aller comme ceci pour stocker une tâche
route('task.edit', 1), // in resource specific example it will output /task/1/edit
mais disons par exemple que vous devez mettre à jour l'itinéraire / task / store, vous devrez le mettre à jour partout où vous utilisez la route.
Mais considérez que vous avez utilisé une route nommée
Route::post('/task/now/go/here', 'TaskController@store')->name('task.store');
Avec les routes nommées, vous pouvez utiliser l'itinéraire comme celui-ci dans votre vue:
action="{{route('task.store')}}"
Maintenant, si vous choisissez de mettre à jour votre itinéraire, il vous suffit de faire le changement dans le fichier des itinéraires et de le mettre à jour dont vous avez besoin.
Route::post('/task', 'TaskController@store')->name('task.store');
Si vous avez besoin de passer des arguments à vos routes, vous le transmettez comme arguments à l'assistant de route comme ceci:
action="/task"
Une question différente, mais je me demande, pourquoi ne pas simplement utiliser name ('task')
au lieu de name ('task.store')
? Est-ce juste une convention dans Laravel, pour écrire du code plus propre?
@tadadadadi J'ai utilisé la convention de ressources de laravel. Fondamentalement, une ressource laravel se compose de 5 itinéraires. Pour la ressource de tâche, cela ressemble à task.index, task.create, task.store, task.update, task.destroy. Chacun pour afficher toutes les tâches, afficher le formulaire pour créer une tâche, stocker une tâche, mettre à jour une tâche, supprimer une tâche, respectivement. Alors oui, c'est juste une convention.
Dans votre application (que ce soit dans une vue, un contrôleur, etc.), je vous recommande de ne faire référence qu'aux routes nommées et jamais aux URL réelles. Si vous devez ensuite modifier l'URL d'une demande, elle sera automatiquement résolue vers l'URL correcte partout. Si vous codez en dur les URL dans votre application, vous devrez mettre à jour l'URL partout où vous l'avez utilisée.
Dans votre exemple,
route ('profile')
renverraituser / profile
puisque c'est cette route qui porte le nomprofile
.