开启辅助访问
帐号登录 |立即注册

Thinkphp5数据模型的创建与使用:实例化与静态创建

 
一、如何创建模型

1.1、手工创建:在应用或模块下创建模型目录model,并在该目录下创建与数据表同名的类文件:如User.php对应user.dbf表;
1.2、命令创建:在当前项目目录下,用命令:php think make:model模块名/模型名,会自动创建指定位置和命名空的空模型,并自动与数据表绑定;
1.3、模型创建完成后,会自动获取当前数据表名称$table,表中所有字段信息$field,主键$pk和数据库配置信息$connection。同时会自动继承基类Model中所有属性和方法,protected类型在本模型中使用,public类型还可以在控制器使用,静态方法大多直接用在控制器,进行CURD操作。

创建SQL数据库Staff 表对应的模型文件Staff.php
在index模型中增加数据库对应模型目录model,新建Staff.php类文件为表的对应模型,继承think\Model类,代码如下:
<?php
namespace app\ index \model;
use think\Model;
class Staff extends
Model
{
/ /模型创建成功
}


二、如何在控制器调用模型

1、实例化调用:
1.2、用new生成模型对象;
1.3、用模型对象处理相关业务;

2、静态调用:
2.1、通过静态查询直接将一个空模型转为数据模型;
2.2、再调用相关方法完成增删改查操作;


三、不推荐使用助手函数model()和添加模型类后缀
在index控制器中调用模型,Index.php的代码如下:
<? php
namespace app\ index \ controller ;
use app\ index\model\Staff;
class Index
{
public function index( )
{
// 1实例化创建模型对象
// $staff = new Staff( ) ;
// $result = $staff -> where( 'id', 1004)->find() ;
// dump($result->getData( 'name')) ;
2静态创建模型对象
$result = Staff::instanc()-> where( 'id', 1004)->find() ;
dump($result->getData( 'name')) ;
}
}
或者使用dump(Staff::get(1004)->getDate('name'));


四、扩展知识:数据库模板中使用函数
在数据库模型中加入函数,被控制器调用可代替getDate('name'),举例:
修改model/Staff.php文件,加入以下代码
<?php
namespace app\ index \model;
use think\Model;
class Staff extends Model
{
public function myTest()
{
return $this->getData('name')
}
}
修改控制器文件index/Index.php,代码如下:
dump(Staff::get(1004)->mytest());




回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

友情链接
  • 艾Q网

    提供设计文章,教程和分享聚合信息与导航工具,最新音乐,动漫,游戏资讯的网站。