thinkphp Model的使用
4.1 放在哪儿?
项目/模块/Model目录下
以本教程为例,Home模块的Model
/Home/Model/目录下
4.2 model类文件叫什么?
模型名: DemoModel.class.php

4.3 model类与表名的对应关系
一般model名称与表名table 相同
如DemoModel.class.php 则对应操作 Demo表
注意: 虽然Model类首字母大写的,但惯例,表名一律小写.
需要插入Demo表,不然会保错
数据库随便创建
create table Demo(
id int,
name varchar(10),
age int,
sex varchar(5)
);
4.4 继承谁?
namespace Home\Model
use \Think\Model
class DemoModel extends Model {
}
4.5 在controller里如何实例化
new \模块名\Model\ModelName();
例:
new \Home\Model\UserModel();
也可以通过快捷函数D('模型名'),例:
D('User')
<?php
namespace Home\Controller;
use Think\Controller;
class UserController extends Controller { public function ff(){
// $a = new \Home\Model\DemoModel();
$a = D('Demo');//thinkphp 封装的方法(优先得到子类的方法)
// var_dump($a);
$a->papa();
}
}
注意:
上述实验,都会失败,因为还没有配置数据库信息.
失败后,请参考第6章
区别
D(),M()函数都能得到Model的实例,
但D函数是优先得到子类的Model实例
而M函数是得到父类的Model实例,即\Think\Model类的实例

thinkphp Model的使用的更多相关文章
- thinkphp model模块
1.获取系统常量信息的方法:在控制器DengLuController里面下写入下面的方法,然后调用该方法. public function test() { //echo "这是测试的&qu ...
- thinkphp model层外挪,以便多个站点可以通用
/ThinkPHP/ThinkPHP.php 增加如下代码 //非原始代码defined('BASE_LOGIC') or define('BASE_LOGIC', THINK_PATH . '.. ...
- thinkPHP Model的操作
1.建立一个表 create table Demo( -> id int, ), -> age int, ) -> ); 2.新增数据 2.1面向过程的风格 $d = $a-> ...
- thinkphp model
模型样板 <?php namespace app\model; use think\Db; use think\Model; class Admin extends Model { //表名 p ...
- thinkphp model 创建之后访问后的错误···
解决:在php.ini里边先开启mysql的pdo扩展
- 改造 ThinkPHP,弃用 D() 等魔术函数
ThinkPHP 是国内比较优秀的 PHP 框架,但有些地方不是很好,比如那些 魔术函数 D(),用它返回的类实例,在各个IDE(如 PhpStorm)下根本识别不了,导致如下问题: 1.不支持 代码 ...
- ThinkPHP 前台视图实现类似于Yii的自动验证
ThinkPHP model类其实自带这个功能 可以写一个基础类继承Model 模型层代码: <?php namespace Manager\Model; use Think\Model; cl ...
- thinkphp 连接多个数据库
config配置文件 //数据库配置信息 'DB_CONFIG' => array( 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => 'loc ...
- [代码审计]SRCMS的两点小越权
0x00 简介 SRCMS是一个开源的企业安全应急响应中心,基于ThinkPHP 3.2框架开发.该系统在2017-09-09已经停止更新了,主要是在翻看p神博客文章时看到这个,随想自己再审一次. p ...
随机推荐
- mac 彻底卸载Paragon NTFS
之前安装了paragon NTFS,试用期过了就卸载了,但是每天还是会提示“试用期已到期”,看着很烦. 百度了一下,发现网上的版本可能比较老了,和我的情况不太一样,但道理应该是一样的. 彻底删除方法: ...
- R: 关于 ggplot2 的初探
生活还很长,别急,慢慢来.亲爱的 require(ggplot2)p1 <- ggplot(mpg, aes(displ, hwy)) + geom_point() ; p1p1 + scale ...
- 网络笔记-unity 实现AOP
该文章来自网络,如有冒犯,请及时联系! 前提 引用以下文件 Microsoft.Practices.ObjectBuilder2.dll Microsoft.Practices.Unity.dll M ...
- 37LCD-TFTLCD原理与配置
1.TFTLCD驱动原理 简介
- C/C++中struct/union/class内存对齐
struct/union/class内存对齐原则有四个: 1).数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储 ...
- C++中的内存重叠问题
内存重叠,直到做到一个笔试题才知道了什么是内存重叠.先上题目吧,是一个淘宝的笔试题,当时有点懵,不知道这个名词是啥子意思. 题目:补充下面函数代码: 如果两段内存重叠,用memcpy函数可能会导致行为 ...
- VS报错之混合模式程序集是针对“v1.1.4322”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。
看到一个kinect大牛编写的一个水果忍者的体感游戏版本,让我为自己一直以来只用现有的网页游戏来模拟kinect体感游戏控制感到惭愧,没办法,我还是菜鸟.学习一段后自己模仿星际大战这个游戏,自己写了一 ...
- [译]Javascript中的数列
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...
- 通过ADB命令行卸载或删除你的Android设备中的应用(转载)
转自:http://mytiankong.com/?p=11755 如果你对你的Android设备在与命令行的交互间有一定的兴趣,那你可能想学习一些使用ADB卸载设备中已安装应用的技巧.为了使这种方法 ...
- 在ubuntu 14.04 编译android 2.3.1 错误解决办法
首先必须降低gcc版本: sudo apt-get install gcc-4.4sudo apt-get install g++-4.4sudo rm -rf /usr/bin/gcc /usr/b ...