[英]laravel route group closure always executing
我对Laravel路由Route::group
有问题.Laravel总是在Route::group
方法中执行闭包。 考虑以下两条路线:
这在routes / web.php中声明
Route::group(['prefix' => 'posts'],function(){
echo 'posts page';
});
Route::get('home'),function(){
echo 'home page';
});
当我打开www.example.com/home
,将执行Route::group
的闭包。
所以我得到这个输出:
posts page home page
逻辑上我应该只获得home page
作为输出
这是预期的行为。
Route::group
是一组Route::get/post
的帮助器/包装器。
应该执行每个Route::get/post
(不是回调,只是初始化)以创建路由列表。
此外, Route::group
不支持将参数用作get / post:
// Does not work!
Route::group(['prefix' =>'user/{id}'], function ($id) {
Route::get('view', function() {});
Route::post('update', function() {});
});
// Works
Route::group(['prefix' => 'user/{id}'], function () {
Route::get('view', function($id) {});
Route::post('update', function($id) {});
});
首先, routes/web.php
不会直接解析请求。 它会建立所有可用路线的列表。
这意味着应该执行每个 Route::get/post
(甚至在组内部)并添加规则/变量。
Route::group
是一个帮助器,它只是向内部的get / post调用添加了额外的参数。
其次,当路由列表准备就绪时,内核会找到适当的回调/关闭并执行它。
换句话说, Route::group
将其第一个参数添加到其中的每个Route :: get / post。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.