php - 通过插件向 laravel 添加路由

标签 php codeigniter laravel

我正在设计一个特定的网络框架,允许我们的团队将新组件添加为插件,然后允许客户使用控制面板添加这些插件或模块。 使用 CodeIgniter 事情很简单,只需将 Controller 复制到 controllers 文件夹中,客户端模块将通过 URL app/index.php/module/function 找到它的路径 但是 Laravel 不允许这样的动态路由。

有没有不用手动编辑 routes.php 来扩展路由配置的方法?

最佳答案

您可以简单地在服务提供商的“引导”方法中添加您想要的任何路由:

public function boot()
{
    $this->app['router']->get('my-route', 'MyVendor\Mypackage\MyController@action');
}

如果你想要一种自动前缀,那不会自动发生,但创建一个并不难:

public function boot()
{
    $this->app['router']->group(['prefix' => 'my-module'], function ($router) {
         $router->get('my-route', 'MyVendor\MyPackage\MyController@action');
         $router->get('my-second-route', 'MyVendor\MyPackage\MyController@otherAction');
    });
}

很多人会将此前缀作为配置变量,以便开发人员可以选择他们想要的前缀(如果您这样做,请记住为您的路由命名,以便您可以轻松引用它们):

public function boot()
{
    $this->app['router']->group(['prefix' => \Config::get('my-package::prefix')], function ($router) {
         $router->get('my-route', 'MyVendor\MyPackage\MyController@action');
         $router->get('my-second-route', 'MyVendor\MyPackage\MyController@otherAction');
    });
}

关于php - 通过插件向 laravel 添加路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21877420/

相关文章:

php - Workday 与 php 和 linux 端点文件交付集成

php - 执行带有参数的Python程序并将结果用作PHP变量? (CodeIgniter、TextBlob、Python 3.4、PHP 7)

angularjs - Codeigniter - AngularJS 路由导致 404

Codeigniter从url获取参数?

php - 拉维尔 |在 Notify 中传递变量

php - 修复 Laravel 表单数组验证递归限制

php - 使用 MySQL 中的几个单词填充下拉列表

php - 如何将 PHP、Javascript 和 HTML 文档合并为一个?

javascript - 使用 Post 的 PHP 表单。错误 : Undefined array key. 但是当我使用 get 时它可以工作。 (w3schools 示例)

javascript - 如何将 Laravel 从本地主机更改为实时 IP 地址?