如题:Yii2中使用modules开发Api接口
一、新建modules目录
```
- components
- config
- controllers
- mail
- models
- modules // 新增
- runtion
- tests
- traits
- vargrant
```
二、在modules中新建模块目录
```
- modules
- vueadmin // 注意模板目录名称都小写
- controller
- SysDeptController.php
- models
- SysDept.php
- views // 可选,这是访问渲染页面文件,可以用Gii CRUD 生成,路径参考 @app/modules/vueadmin/views
- Module.php // 必要,模块入口文件,可使用Gii Module生成
// Module.php
<?php
namespace app\modules\vueadmin;
/**
* vueadmin module definition class
*/
class Module extends \yii\base\Module
{
/**
* {@inheritdoc}
*/
public $controllerNamespace = 'app\modules\vueadmin\controllers';
/**
* {@inheritdoc}
*/
public function init()
{
parent::init();
// custom initialization code goes here
}
}
```
三、重点,config/web.php中配置模块
```
// 每个新建的Modules都要在这里添加
'modules' => [
'vueadmin' => [
// 确保路径无误
'class' => 'app\modules\vueadmin\Module',
]
],
'components' => [
...
]
```
四、开启url美化,便于Api
```
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'enableStrictParsing' => false,
'rules' => [
// ['class' => 'yii\rest\UrlRule', 'controller' => 'login'],
// 方法一:针对特定域名的链接 http://youlocal.com/vueadmin/sys-menu/2/menu-ids,get参数id
'/vueadmin/sys-menu/<id:\d+>/menu-ids' => '/vueadmin/sys-menu/menu-ids/',
// 方法二:针对特定域名的链接
// [
// 'pattern' => '/vueadmin/sys-menu/<id:\d+>/menu-ids',
// 'route' => '/vueadmin/sys-menu/menu-ids',
// 'defaults' => [ 'id' => 1 ], // 默认1
// ]
],
],
```
五、访问地址
// 主域名是自己本地配置的域名可以用phpStudy或者wampServer,配置相关hosts、httpd-vhosts
http://yourlocal.com/vueadmin/sys-dept/index // 访问后最终是modules/vueadmin/views/index.php文件