【问题标题】:Laravel & NamespacingLaravel 和命名空间
【发布时间】:2023-03-21 05:53:01
【问题描述】:

这可能很挑剔,但我想知道 Laravel 4.2“路由”的命名空间是如何工作的(使用资源函数)。

所以...在所有文档 (http://laravel.com/docs/4.2/controllers#resource-controllers) 中,您会看到:

Route::resource('photo', 'PhotoController');

但是,当我转到“路线”文档 (http://laravel.com/api/4.2/Illuminate/Routing/Route.html) 时,您会看到那里不存在“资源”功能。相反,它存在于“Router”(http://laravel.com/api/4.2/Illuminate/Routing/Router.html)下。

如何使用 PHP “use” 语句来指定我正在使用资源函数?该示例本身是准确的,并且在我调用时有效(因为它显示了我期望的所有路线):

php artisan routes

Laravel 如何让 Route 与 Router 命名空间发挥作用?

【问题讨论】:

    标签: php laravel namespaces resources


    【解决方案1】:

    问题是这里的Route 不是类,而是facade。如果您查看Facade class reference,您会看到Route 外观正在使用Illuminate\Routing\Router 路由器,所以它是您想要的类

    【讨论】:

      【解决方案2】:

      Laravel 大量使用 Facades。它们基本上是允许静态访问 (Route::resource()) 的类,这些方法根本不是静态的。它在后台创建Router 类的新实例,然后调用方法resource()。您可以在docs中找到更多相关信息

      如果您正在寻找依赖于解析类的正确自动完成和其他 IDE 功能,请尝试laravel ide helper

      【讨论】:

      • 太棒了。这正是我一直在寻找的东西,却没有意识到我在寻找它。哈哈。谢谢!
      【解决方案3】:

      app/routes.php 中的 Route 只是 Laravel's various facades 中的另一个,包含由 Laravel 路由引擎处理的规则,以生成将使用的实际路由在您的应用程序中。

      为了更好地理解,我建议查看 this short guide to Laravel Architecture 以了解框架中如何接收和处理请求,以及 Rebuilding Laravel 解释了如何从第一个文件开始构建各种 Laravel 组件处理完毕。

      【讨论】:

      • app/routes.php 当然不是门面。它利用了它们!
      • 太棒了!我一定会看看资源。谢谢!
      猜你喜欢
      • 2014-11-12
      • 2014-09-03
      • 2015-07-27
      • 2016-11-27
      • 2023-04-09
      • 2015-07-05
      • 2010-10-20
      • 2015-04-12
      • 2017-04-23
      相关资源
      最近更新 更多