thinkphp的模型,默认情况是一个数据表对应一个Model类.
网站建设、成都网站制作介绍好的网站是理念、设计和技术的结合。创新互联拥有的网站设计理念、多方位的设计风格、经验丰富的设计团队。提供PC端+手机端网站建设,用营销思维进行网站设计、采用先进技术开源代码、注重用户体验与SEO基础,将技术与创意整合到网站之中,以契合客户的方式做到创意性的视觉化效果。
创建 model类文件的方法是:
在Model文件夹下创建 XxxModel.class.php
例如:数据表名称 test
则在Model文件夹下创建类文件:TestModel.class.php
可以用下面两种方法去创建一个数据表model对象:
第一种:$Test = D('Test')
第二种:$Test = new Model('Test')
如果你的模型是没有确定的数据表可以对应(或者说需要操作多个数据表),在这种情况下,
TP提供了一个机制来解决这样的问题,尤其是你需要经常使用原生SQL的时候,这个机制会非常有帮助。
下面来看一段代码:代码:
$Model = new Model();
$list = $Model-query('select * from think_user where status=1');
当我们直接实例化Model基类的时候,是不会进行任何数据库的连接的,也不会缓存任何数据表的字段信息,所以这个模型更加纯净一点,开销也相当比较小。
当然,并不是说,在这种方式下就只能使用原生查询,你可以很好的利用新版的连贯操作功能来查询数据。例如:代码:
$Model = D(); // 和上面的new Model()等效
// TP的连贯操作的优势之一就是可以动态设置要查询的数据表
$list = $Model-field('id,name')-table('think_user')-where('status=1')-findall();
mysql
有一个默认的数据库,叫做information_schema
连上这个库,执行下面的语句(你自己那可能的改下下面的sql)
//table_schema
是你的数据库名字
table_name是表名
select
*
from
tables
where
table_schema
=
'storage'
and
table_name
like
'product%'
你看看库中这个表结构就明白了,呵呵
目录结构(主要三个文件)
1.application\index\controller\index.php
2.application\index\model\UserModel.php
3.application\common.php
文件类容
1.application\index\controller\index.php
控制器,和之前没什么变化,命名空间比较好用了,要注意命名空间
?php
namespace app\index\controller;
use think\Controller;
use app\index\model\UserModel;
class Login extends Base
{
public function index()
{
$User_model = new UserModel(); // 实例化用户模型
$userdatas = $User_model-getAllUserDatas(); // 获取数据
var_dump($userdatas);
}
}
复制代码
2.application\index\model\UserModel.php
模型,我将数据库链接也放到这里
?php
namespace app\index\model;
use think\Model;
\think\Loader::controller('common/member', 'event'); // 加载common.php的函数
class UserModel extends Model
{
// 设置当前模型对应的完整数据表名称
protected $table = 'user';
// 设置当前模型的数据库连接
protected $connection = [
// 数据库类型
'type' = 'mysql',
// 数据库连接DSN配置
'dsn' = '',
// 服务器地址
'hostname' = '127.0.0.1',
// 数据库名
'database' = 'mydb',
// 数据库用户名
'username' = 'root',
// 数据库密码
'password' = '123',
// 数据库连接端口
'hostport' = '3306',
// 数据库连接参数
'params' = [],
// 数据库编码默认采用utf8
'charset' = 'utf8',
// 数据库表前缀
'prefix' = '',
];
// 获取所有用户的所有数据
public function getAllUserDatas()
{
$more_datas = $this-select(); // 查询所有用户的所有字段资料
if (empty($more_datas)) { // 判断是否出错
return false;
}
return tp5ModelTransfer($more_datas); // 返回修改后的数据
}
}
复制代码
3.application\common.php
公共函数文件,放置这个转换功能的,主要代码,其实就一点点
?php
// 应用公共文件
function tp5ModelTransfer($array)
{
if (empty($array) || !count($array)) {
return false;
}
foreach ($array as $value) {
$datarray[] = $value-toArray();
}
return $datarray;
}
没有默认的数据库名称的,都是要自己创建才会有的,
如果你是下载的php源码,那一般源码里有sql文件交,或为 .sql后缀的文件名 为数据库;
那你通过phpmyadmin 导入.sql档到mysql数据库里,至于是什么数据库名称,自己取的;
你要具备会使用phpmyadmin基本知识!
如果是虚拟主机:数据库要先创建 然后用户名 密码 自己的
如果是自己的电脑: 那么就可以直接随便输数据库 ,用户名 密码还是要对的
这个是不用必须的,可以任意命名。只是在tp里面
如果你的model命名是用数据表名字命名的话,操作的时候直接相当操作这个表。自己命名的model,自己需要指定下自己操作的表名就OK啦,不是必须的
。多看看官方手册,还是挺不错的