Laravel 控制器和包中的路由?

Posted

技术标签:

【中文标题】Laravel 控制器和包中的路由?【英文标题】:Laravel controllers and routes in packages? 【发布时间】:2014-08-20 17:54:07 【问题描述】:

我在将控制器注册到我的包中的路由时遇到问题。

据我从官方文档中了解到,我只需要简单地为其添加前缀并使用我的命名空间,尽管我总是收到 xyzclass not found 的错误。

任何人都可以向我解释我怎样才能完成这项工作?

-- Vendor -- Package |-- composer.json |-- composer.lock |-- public |-- src | |-- Vendor | | -- Package | | -- PackageServiceProvider.php | |-- config | |-- controllers | | -- MyController.php | |-- lang | |-- migrations | |-- routes.php | -- views |-- tests

我在我的 serviceprovider 文件中加载了我的 routes.php。 我在 MyController.php 中创建和索引函数并在我的 routes.php 中分配它。

Route::contorller('myctrl', 'Vendor\Package\MyController');

理论上我应该能够访问 mydomain.com/myctrl 并且它应该会返回给我 我在 MyController 的 index 函数中定义的。但实际上我收到一条错误消息,说 Class Vendor\Package\MyController 不存在。任何建议或帮助应该如何工作或如何工作?

【问题讨论】:

【参考方案1】:

我猜我很笨,忘记了一些小细节。 下次我应该使用适当的命名空间,将控制器文件夹添加到我的 composer.json 也有帮助。

我在这里找到了有关如何执行此操作的详细说明: https://***.com/a/18137352/1397967

【讨论】:

【参考方案2】:
Route::contorller('myctrl', 'MyController');

这是链接到src/controllers/ 而不是vendor

【讨论】:

尝试作曲家转储自动加载 相同。 ReflectionException 类 MyController 不存在

以上是关于Laravel 控制器和包中的路由?的主要内容,如果未能解决你的问题,请参考以下文章

如何将参数传递给 Laravel 包中的控制器操作?

路由到 Laravel 8 中的控制器 [重复]

Laravel中的路由问题,带有多个控制器和具有相同名称的不同路由[关闭]

Laravel 5.4 路由器中的条件设置控制器

路由到 Laravel 5 子文件夹中的控制器

Laravel 中的控制台路由是啥?它是如何工作的? [关闭]