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
posted @   胡勇健  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示