繁体   English   中英

laravel路由组关闭始终执行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM