thinkphp模型层Model、Logic、Service讲解

简介: thinkphp模型层Model、Logic、Service讲解 时间:2014-08-24 15:54:56   编辑:一切随缘   文章来源:php教程网 已阅读:771 次           js特效源码,就从这里开始     我有疑问【PHP186论坛提问】 jS游戏桌球jS射击游戏CS 1.

thinkphp模型层Model、Logic、Service讲解

时间:2014-08-24 15:54:56   编辑:一切随缘   文章来源:php教程网  已阅读:771 次
 
 

        thinkphp模型层Model、Logic、Service讲解

        ThinkPHP支持模型的分层 ,除了Model层之外,我们可以项目的需要设计和创建其他的模型层。

        通常情况下,不同的分层模型仍然是继承系统的\Think\Model类或其子类,所以,其基本操作和Model类的操作是一致的。

        例如在Home模块的设计中需要区分数据层、逻辑层、服务层等不同的模型层,我们可以在模块目录下面创建Model、Logic和Service目录,把对用户表的所有模型操作分成三层:

            数据层:Home\Model\UserModel 用于定义数据相关的自动验证和自动完成和数据存取接口
            逻辑层:Home\Logic\UserLogic 用于定义用户相关的业务逻辑
            服务层:Home\Service\UserService 用于定义用户相关的服务接口等

        三个模型层的定义如下:

        Model类:Home\Model\UserModel.class.php

            namespace Home\Model;
            class UserModel extends \Think\Model{
            }

        实例化方法:D('User');

        Logic类:Home\Logic\UserLogic.class.php

            namespace Home\Logic;
            class UserLogic extends \Think\Model{
            }

        实例化方法:D('User','Logic');

        Api类:Home\Api\UserApi.class.php

            namespace Home\Api;
            class UserApi extends \Think\Model{
            }

        实例化方法:D('User','Api');

        D方法默认操作的模型层由DEFAULT_M_LAYER参数配置,我们可以改变默认操作的模型层为Logic层,例如:

            'DEFAULT_M_LAYER' => 'Logic', // 默认的模型层名称

        这样,当我们调用:

            $User = D('User');

        的时候其实是实例化的 UserLogic类,而不是UserModel类。
 

目录
相关文章
|
2月前
|
人工智能 安全 人机交互
溯源技术革命:新型数字水印如何让数据“开口说话”,指认泄密源头?
当敏感信息遭偷拍、打印外泄或录音外传,隐形数字水印如“数据守护者”悄然溯源,精准锁定泄密源头。跨屏幕、纸质、音视频等多介质,实现“电-光-电”“电-纸-电”“电-空-电”全链路追踪。从军工到金融,从会议到协作,水印技术正构筑数据安全“最后一公里”防线。AIGC时代,更将融合AI与区块链,守护数字真实性。
|
2月前
|
安全 Unix 物联网
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 10 月更新)
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 10 月更新)
266 0
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 10 月更新)
|
6月前
|
缓存 安全 API
RESTful与GraphQL:电商API接口设计的技术细节与适用场景
本文对比了RESTful与GraphQL这两种主流电商API接口设计方案。RESTful通过资源与HTTP方法定义操作,简单直观但可能引发过度或欠获取数据问题;GraphQL允许客户端精确指定所需字段,提高灵活性和传输效率,但面临深度查询攻击等安全挑战。从性能、灵活性、安全性及适用场景多维度分析,RESTful适合资源导向场景,GraphQL则适用于复杂数据需求。实际开发中需根据业务特点选择合适方案,或结合两者优势,以优化用户体验与系统性能。
Element el-select 选择器(下拉框)详解
本文目录 1. 用途 2. 数据绑定 2.1 固定选项 2.2 选项绑定数组 3. 功能效果 3.1 可清空选项 3.2 多选 3.3 可搜索 4. 事件响应 5. 小结
7422 0
Element el-select 选择器(下拉框)详解
|
2月前
|
机器学习/深度学习 人工智能 算法
智能体会是泡沫吗?AI七十年进化告诉你,2025年才是真正的拐点
AI历经三次浪潮,2025年迎来智能体元年。从规则系统到深度学习,智能体终让AI具备记忆、规划与行动力。国家政策、大厂布局、巨头共识齐发力,智能体正重塑产业格局。理解其运行逻辑,找准落地场景,方能抢占时代先机。
idea提示Your idea evaluation has expired. Your session will be limited to 30 minutes[亲测解决]
解决方法: 在idea中安装插件idea eval Reset,应用市场如果搜不到就安装离线的
2094 0
idea提示Your idea evaluation has expired. Your session will be limited to 30 minutes[亲测解决]
|
2月前
|
开发者 API 机器学习/深度学习
淘宝 / 1688 / 义乌购图搜 API 实战指南:接口调用与商业场景应用
本文详解淘宝、1688、义乌购三大平台图片搜索接口的核心特点、调用流程与实战代码。涵盖跨平台对比、参数配置、响应解析及避坑指南,支持URL/Base64上传,返回商品ID、价格、销量等关键信息,助力开发者快速实现商品识别与比价功能。
淘宝 / 1688 / 义乌购图搜 API 实战指南:接口调用与商业场景应用
|
5月前
|
API PHP
PHP空值合并运算符:?? 拯救你的 isset() 套娃!
PHP空值合并运算符:?? 拯救你的 isset() 套娃!
|
分布式计算 并行计算 数据处理