ThinkPHP开发笔记-模型
来源:互联网 发布:ios动画制作软件 编辑:程序博客网 时间:2024/05/24 07:11
1、模型定义。在ThinkPHP中,可以无需进行任何模型定义。只有在需要封装单独的业务逻辑的时候,模型类才是必须被定义的,因此ThinkPHP在模型上有很多的灵活和方便性,让你无需因为表太多而烦恼。
模型类通常需要继承系统的\Think\Model类或其子类,下面是一个Home\Model\UserModel类的定义:
namespace Home\Model;use Think\Model;class CategoryModel extends Model { protected $trueTableName = 'top_categories'; protected $dbName = 'top';}
2、模型实例化。根据不同的模型定义,我们有几种实例化模型的方法,根据需要采用不同的方式:
(1)直接实例化。可以和实例化其他类库一样实例化模型类,模型类通常都是继承系统的\Think\Model类,例如:
$User = new \Home\Model\UserModel();// 带参数实例化$New = new \Home\Model\NewModel('blog','think_',$connection);
(2)D方法实例化。D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会实例化系统的\Think\Model基类,同时对于已实例化过的模型,不会重复去实例化。
$User = D('User');
(3)M方法实例化。D方法实例化模型类的时候通常是实例化某个具体的模型类,如果你仅仅是对数据表进行基本的CURD操作的话,使用M方法实例化的话,由于不需要加载具体的模型类,所以性能会更高。
$User = M('User');
(4)实例化空模型类。
//实例化空模型$Model = new Model();//或者使用M快捷方法是等效的$Model = M();//进行原生的SQL查询$Model->query('SELECT * FROM think_user WHERE status = 1');
3、数据库连接信息。系统默认会读取配置文件中的相关参数,包括:
'DB_TYPE' => '', // 数据库类型'DB_HOST' => '', // 服务器地址'DB_NAME' => '', // 数据库名'DB_USER' => '', // 用户名'DB_PWD' => '', // 密码'DB_PORT' => '', // 端口'DB_PREFIX' => '', // 数据库表前缀'DB_DSN' => '', // 数据库连接DSN 用于PDO方式'DB_CHARSET' => 'utf8', // 数据库的编码 默认为utf8
上面实例化方法中直接实例化和M方法实例化,都可以传入数据库连接信息。数据库连接信息参数支持三种格式:
(1)字符串定义
new \Home\Model\NewModel('blog','think_','mysql://root:1234@localhost/demo');
(2)数组定义
$connection = array( 'db_type' => 'mysql', 'db_host' => '127.0.0.1', 'db_user' => 'root', 'db_pwd' => '12345', 'db_port' => 3306, 'db_name' => 'demo', );new \Home\Model\NewModel('new','think_',$connection);
(3)配置定义
//数据库配置1'DB_CONFIG1' => array( 'db_type' => 'mysql', 'db_user' => 'root', 'db_pwd' => '1234', 'db_host' => 'localhost', 'db_port' => '3306', 'db_name' => 'thinkphp'),//数据库配置2'DB_CONFIG2' => 'mysql://root:1234@localhost:3306/thinkphp',
然后,我们就可以这样实例化模型类传入连接信息:
new \Home\Model\NewModel('new','think_','DB_CONFIG1');new \Home\Model\BlogModel('blog','think_','DB_CONFIG2');
0 0
- ThinkPHP开发笔记-模型
- Thinkphp笔记3 模型
- thinkphp RBAC模型学习笔记
- thinkphp 关联模型学习笔记
- ThinkPHP开发笔记-视图
- ThinkPHP开发笔记-控制器
- PHP学习笔记——ThinkPHP开发指南-关联模型之关联定义
- ThinkPHP的MVC模型笔记1
- ThinkPHP开发指南-模型之连贯操作
- ThinkPHP模型开发之自动完成常见问题
- ThinkPHP开发笔记--环境搭建
- ThinkPHP开发指南-模型-高级模型之多数据库连接和切换
- ThinkPHP模型
- ThinkPHP 模型
- thinkphp模型
- ThinkPHP - 模型
- Thinkphp 模型->关联模型
- ThinkPHP框架开发学习笔记(一)
- 统计学和数据挖掘的关系
- Android开发-Android Studio安装
- ubuntu 安装django过程
- 新浪微博名人用词分析
- oracle中clob类型的使用
- ThinkPHP开发笔记-模型
- unity 切圆角矩形 --shader编程
- ThinkPHP开发笔记-视图
- OP-TEE设计结构(二)
- ThinkPHP开发笔记-控制器
- ThinkPHP开发笔记-用户登录注册
- sudo dpkg --configure -a 错误
- ThinkPHP开发笔记-前后端数据交互
- 安全期不安全