thinkphp5中的model模型层,有什么用

thinkphp5中的model模型层,有什么用,第1张

Thinkphp模型类的主要作用是:完成业务逻辑处理,包括对数据表的增删改查(CUED

) *** 作。对处理的数据进行封装;对字段及属性进行验证;完成对象及属性的过滤等功能。

Thinkphp模型类的命名规则:使用驼峰法命名,并且首字母大写,然后加上模型层的名称

目录结构(主要三个文件)

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

}

一般情况下是一个表对应一个model类,不用也是可以的。

至于你说的简化代码,给你举个例子:

比如说你有一个user表,里面有 id  name  pass time(登录时间),对其的 *** 作页面有注册,登录,修改密码等等

如果你要使用M来进行实例的话,不管是注册还是干啥,你每次都要对提交过来的信息是否合法进行一个验证,time时间每次都要使用time()函数来重新生成以下

但是如果你使用了model,使用D来实例化,这些信息的验证,和time()的完成都可以写到model中,就不用在上面说的那些页面当中一一进行 *** 作验证或者添加了。

class UserModel extends Model

{

    //使用下面的这些可以很方面对user表进行 *** 作,省去了多次对表进行 *** 作时候所书写的验证和完成之类的代码。

    //自动验证

    protected $_validate = array(

        array('name','require','用户名不能为空'), 

        array('name','','用户名已存在',0,'unique',1),

        array('user_pwd','require','新密码不能是空',0,'',2),//只更新时验证

        )

    //自动完成

    protected $_auto = array (

        array('addtime','time',1,'function'),

    )

    //上面的一些规则可以参考自动完成和自动验证的规则,需要调用函数的时候,在下面自己再添加自定义的函数

 

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9977940.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存