【问题标题】:How to pass variables to the routing file using laravel / lumen?如何使用 laravel / lumen 将变量传递给路由文件?
【发布时间】:2020-07-27 07:54:29
【问题描述】:

在 bootstrap/app.php 的底部有以下代码来包含路由文件...

$app->router->group([
  'namespace' => 'App\Http\Controllers',
], function ($router) {
    require __DIR__.'/../routes/web.php';
});

$router 现在在所需的 web.php 文件中可用,这是有道理的,但是我看不到 $router 是如何或在何处被创建以传递给匿名函数的......希望这是有道理的...... . 感谢任何响应者。

【问题讨论】:

  • 有趣的方法!你对此有什么确切的问题?看着this answer,我相信这没问题。
  • 至于它是如何创建和传递的,可以看Illuminate\Routing\Router第367、374、414行。如果第二个参数是闭包,调用时会以自己的实例作为传递参数
  • @Julio Motorol,感谢您的回复,这是 Lumen 7 默认安装附带的方法。似乎没有供应商\照明\路由\路由器。该脚本工作正常,我只是想了解为什么?.. 在传递给匿名函数时 $router 尚未设置,但在所需文件中 $router 似乎是 Laravel\Lumen 的一个实例\路由\路由器。
  • 我在 Laravel 中查看过这个。我检查了 Lumen 的源代码,发现 router script 它的工作原理与 Laravel 相同。 Router 以自身的实例作为参数调用匿名函数,因此匿名函数中的 $router
  • @JulioMotol,我正在阅读代码,就好像您在编写函数时正在运行函数一样,因此需要设置 $router,但实际上它是函数的蓝图,在您运行 $app->router->group 方法之前,它不会运行。正如您所指出的,它传递 $app->router 对象的实例以在匿名函数中设置 $router 变量。这听起来对吗?..请在上面添加您的评论作为答案,我会将其标记为正确,非常感谢,J :)

标签: laravel lumen anonymous-function


【解决方案1】:

Router class 的源代码中,Router 以自身实例作为参数调用匿名函数,因此匿名函数中的 $router。

【讨论】:

    猜你喜欢
    • 2015-03-16
    • 2017-11-03
    • 2020-01-23
    • 2019-08-12
    • 2015-01-06
    • 2015-12-02
    • 2017-08-07
    • 2020-02-05
    • 1970-01-01
    相关资源
    最近更新 更多