我正在设计一个特定的网络框架,允许我们的团队将新组件添加为插件,然后允许客户使用控制面板添加这些插件或模块。 使用 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/