yii2模块
yii2模块
模块是独立的软件单元,由模型, 视图, 控制器和其他支持组件组成, 终端用户可以访问在应用主体中已安装的模块的控制器, 模块被当成小应用主体来看待,和应用主体不同的是, 模块不能单独部署,必须属于某个应用主体。
模块文件结构
modules
admin
controllers
AdminController.php
models
Admin.php
views
admin
index.php
Module.php
模块文件 Module.php
<?php
namespace app\modules\admin;
/**
* member module definition class
*/
class Module extends \yii\base\Module
{
/**
* {@inheritdoc}
*/
public $controllerNamespace = 'app\modules\admin\controllers';
/**
* {@inheritdoc}
*/
public function init()
{
parent::init();
// custom initialization code goes here
}
}
控制器AdminController.php
<?php
namespace app\modules\admin\controllers;
use app\modules\admin\models\Admin;
use yii\web\Controller;
class AdminController extends Controller
{
public function actionIndex(){
$model = Admin::findOne(['id'=>1]);
return $this->render('index',[
'model'=>$model
]);
}
}
模型 Admin.php
<?php
namespace app\modules\admin\models;
use Yii;
class Admin extends \yii\db\ActiveRecord
{
/**
* {@inheritdoc}
*/
public static function tableName()
{
return 'admin';
}
/**
* {@inheritdoc}
*/
public function rules()
{
return [
[['username', 'password'], 'required'],
[['username'], 'string', 'length' => [8, 12]],
[['password'], 'string', 'max' => 20]
];
}
/**
* {@inheritdoc}
*/
public function attributeLabels()
{
return [
'id' => 'Id',
'username' => '账号',
'password' => '密码',
'status' => '状态',
];
}
}
视图 index.php
<?php
echo "欢迎使用模块示例";
?>
姓名:<?=$model['username'];?>
<br>
密码:<?=$model['password'];?>
配置文件 web.php 添加 modules 配置
'modules' => [
'admin' => [
'class' => 'app\modules\admin\Module',
],
],
访问
http://www.yii2.com/admin/admin/index
欢迎使用模块示例 姓名:huyongjian
密码:123456
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现