在原有模块上开发新的模块

1.开发目的

开发出来一个类似如图的表格,在其中增加增删改查的功能。大概实施路径:MySQL数据库导入数据,修改关键词,对列名做出约束;在做出在原有的其他板块下查看并copy所需代码,对关键词做修改;在前端管理员界面添加路由,菜单和部署角色。

2.开发途径

第一步 数据库字段设计

这边需要做一个用户等级的表设计,总共设计了12个字段,字符集采用的utf8mb4,排序规则用的utf8mb4_unicode_ci。

utf8mb4 是 MySQL 数据库中的一种字符集,它支持完整的 UTF-8 编码,包括 1 到 4 字节的字符。相比于 utf8utf8mb4 能够更好地支持包括表情符号(Emoji)在内的各种特殊字符。

为什么使用 utf8mb4 而不是 utf8

  • 标准 UTF-8 支持:utf8mb4 是真正的 UTF-8 编码,能够编码所有有效的 Unicode 字符,包括一些特殊符号、表情符号和历史字符。
  • utf8 的局限性:MySQL 的 utf8 编码实际上只支持 1 到 3 字节的字符,而标准的 UTF-8 支持 1 到 4 字节的字符。这意味着使用 utf8 编码的 MySQL 数据库无法正确存储 4 字节的字符,例如某些表情符号。
  • unicode 排序规则:这是指 Unicode 排序规则,基于 Unicode 标准进行排序和比较,能够正确处理多种语言和字符。
  • ci(Case Insensitive):表示不区分大小写(case insensitive)的排序规则。这意味着在进行字符串比较时,大写字母和小写字母被认为是相同的。

在数据库设计时没有用外键,约束只有id字段主键设置了约束。

在数据库里设计字段时加太多约束和外键容易跑不动,累死数据库。所以相关需要字段联系的地方在程序内完成。

第二步 PHP框架设计

 首先介绍一下

MVC架构,在做php编码时需要用到。

在Yii2框架中,MVC架构分为模型(Model)、视图(View)和控制器(Controller)。下面我将详细介绍如何使用MVC架构实现数据库连接、数据处理和数据展示。

首先在common目录下的models文件夹写文件ClientLevel,在backend目录下的models文件夹下写文件ClientLevelSearch,model文件写完,之后来回要调用。

然后在backend目录下的conllers文件夹下写文件ClientLevelController。

最后在backend目录下的views文件夹下写文件index,view,_form,update,create。

创立文件

后填写内容。(可看可不看,可以参考别的大神,搜关键词MVC)

在Yii2框架中,MVC架构分为模型(Model)、视图(View)和控制器(Controller)。下面我将详细介绍如何使用MVC架构实现数据库连接、数据处理和数据展示。

1. 模型(Model)

首先,我们创建一个模型类来表示数据库中的表。例如,假设我们有一个`client_level`表。

创立ClientLevel文件

<?php
namespace common\models;

use yii\behaviors\BlameableBehavior;
use yii\behaviors\TimestampBehavior;
use yii\db\ActiveRecord;
use yii\db\Expression;

/**
 * Class Client Level
 * @package common\models
 * @property int id
 * @property int level
 * @property int name
 * @property int remark
 * @property int expiry
 * @property number discount
 * @property number rate
 * @property int created_by
 * @property int updated_by
 * @property \DateTime created_at
 * @property \DateTime updated_at
 * @property int deleted
 */
class ClientLevel extends ActiveRecord
{

    public static function tableName()
    {
        return '{{%tt_client_level}}';
    }

    public function behaviors()
    {
        return [
            [
                'class' => TimestampBehavior::class,
                'value' => new Expression('NOW()'),
            ],
            [
                'class' => BlameableBehavior::class,
            ],
        ];
    }

    public function rules()
    {
        return [
            [['id','level','created_by','updated_by','deleted'], 'integer'],
            [['remark','name'], 'string', 'max' => 50],
            [['created_at','updated_at','expiry'], 'date', 'format'=>'yyyy-MM-dd HH:mm:ss'],
            [['expiry'], 'integer', 'min' => 1],
            [['rate','discount'], 'number'],
            [['level','name','rate'], 'required'],
            [['id','level'],'unique']
        ];
    }

    public function attributeLabels()
    {
        return [
            'level'=>'会员等级',
            'name' => '会员',
            'remark' => '备注',
            'rate'=>'会员——积分换算比',
            'discount'=>'折扣比',
            'expiry' => '有效期/月',
            'created_at' => '创建时间',
            'updated_at' => '更新时间',
        ];
    }
}

通过上述步骤,我们在Yii2框架的MVC架构中成功实现了数据库连接、数据处理和数据展示。你可以根据实际需求进一步扩展和优化代码,例如增加数据的创建、更新和删除功能。

细节叙述

ClientLevel

ClientLevel下要使用命名空间和关键方法。接着参数说明,

数据库导入,

字段类型说明,字段统一

必要时添加时间戳

ClientLevelSearch

ClientLevelSearch下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值