热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

thankphp5,thinkphp5获取器

获取器的作用是对模型实例的(原始)数据做出自动处理。一个获取器对应模型的一个特殊方法(该方法必须为public类型),方法命名规范为:getFieldN

获取器的作用是对模型实例的(原始)数据做出自动处理。一个获取器对应模型的一个特殊方法(该方法必须为public 类型),方法命名规范为:

getFieldNameAttr

FieldName 为数据表字段的驼峰转换,定义了获取器之后会在下列情况自动触发:

模型的数据对象取值操作($model->field_name );

模型的序列化输出操作( $model->toArray() 及 toJson() );

显式调用 getAttr 方法( $this->getAttr('field_name') );

获取器的场景包括:

时间日期字段的格式化输出;

集合或枚举类型的输出;

数字状态字段的输出;

组合字段的输出;

例如,我们需要对状态值进行转换,可以使用:class User extends Model

{

//获取器

//该方法必须为 public 类型

//数据库字段为 status

public function getStatusAttr($value)

{

$status = [-1 => '删除', 0 => '禁用', 1 => '正常', 2 => '待审核'];

return $status[$value];

}

//数据库字段为 add_time

//函数名中不能出现下划线

public function getAddTimeAttr($val)

{

return date('Y-m-d:H:i:s', $val);

}

}

数据表的字段会自动转换为驼峰法,一般 status 字段的值采用数值类型,我们可以通过获取器定义,自动转

换为字符串描述。$user = User::get(1);

echo $user->status; // 例如输出“正常”

获取器还可以定义数据表中不存在的字段,例如:class User extends Model

{

public function getStatusTextAttr($value, $data)

{

$status = [-1 => '删除', 0 => '禁用', 1 => '正常', 2 => '待审核'];

return $status[$data['status']];

}

}

获取器方法的第二个参数传入的是当前的所有数据数组

我们就可以直接使用statustext字段的值了,例$user = User::get(1);

echo $user->status_text; // 例如输出“正常”

如果你定义了获取器的情况下,希望获取数据表中的原始数据,可以使用:$user = User::get(1);

// 通过获取器获取字段

echo $user->status;

// 获取原始字段数据

echo $user->getData('status');

// 获取全部原始数据

dump($user->getData());



推荐阅读
  • express工程中的json调用方法
    本文介绍了在express工程中如何调用json数据,包括建立app.js文件、创建数据接口以及获取全部数据和typeid为1的数据的方法。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 通过手机浏览器调用客户端QQ
    php教程|php手册thinkphp代码,代码示例,代码参考,php短信,数据库备份代码,令牌验证,去除代码中的空白和注释调用QQ客户端php教程-php手册可调用iosandr ... [详细]
  • ThinkPHP6 核心分析:系统服务
    什么是系统服务?系统服务是对于程序要用到的类在使用前先进行类的标识的绑定,以便容器能够对其进行解析(通过服务类的 register 方法),还有就是初始化一些参数、注册路由等(不限 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • PHP中的单例模式与静态变量的区别及使用方法
    本文介绍了PHP中的单例模式与静态变量的区别及使用方法。在PHP中,静态变量的存活周期仅仅是每次PHP的会话周期,与Java、C++不同。静态变量在PHP中的作用域仅限于当前文件内,在函数或类中可以传递变量。本文还通过示例代码解释了静态变量在函数和类中的使用方法,并说明了静态变量的生命周期与结构体的生命周期相关联。同时,本文还介绍了静态变量在类中的使用方法,并通过示例代码展示了如何在类中使用静态变量。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • php 获取无限子文件,php快速无限遍历递归文件夹目录、子文件,支持绝对路径和相对路径,支持返回生成数组...
    支持无限极遍历子文件及文件夹,支持绝对路径和相对路径!函数说明:arrayglob(string$pattern[,int$flags]) ... [详细]
  • 参考了这篇文章:https:segmentfault.comq1010000000473230后报错误:GettingError“Formsubmissioncanceledbec ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • ThinkPHP6关于菜单管理知识总结
    ##菜单管理页面四个功能编辑添加,删除,子菜单,返回上级菜 ... [详细]
author-avatar
wojijola;
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有