Yii2使用modules模块开发Api接口的注意点

如题: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文件
posted @ 2023-09-21 11:55  浪里小韭菜  阅读(107)  评论(0编辑  收藏  举报