thinkphp5 获取器的
获取器的作用是在获取数据的字段值后自动进行处理,例如,我们需要对状态值进行转换,可以使用:
1、数据库字段转换。
class User extends Model
{
public function getStatusAttr($value)
{
$status = [-=>'删除',=>'禁用',=>'正常',=>'待审核'];
return $status[$value];
}
}
数据表的字段会自动转换为驼峰法,一般status字段的值采用数值类型,我们可以通过获取器定义,自动
转换为字符串描述。
$user = User::get();
echo $user->status; // 例如输出“正常”
如果同时需要状态值和状态名称
protected function getSexAttr($value) {
$text = [ => '男', => '女', => '未知'];
return ['val' => $value, 'text' => $text[$value]];
}
这种情况下,前台就可以直接使用了{$v.sex.val}是1,2,3值的格式。{$v.sex.text}就是男,女,未知的格式。
2、转换数据库不存在的字段,主要是这个用法
class User extends Model
{
public function getStatusTextAttr($value,$data)
{
$status = [-=>'删除',=>'禁用',=>'正常',=>'待审核'];
return $status[$data['status']];
}
}
数据库不存在这个status_text字段,但是如果在使用user对象取status_text 字段的话,就会自动调用这个转换器。(这里需要注意的是第二个参数,$data是整个user对象数组)
$user = User::get(1);
echo $user->status_text; // 例如输出“正常”
3、关联其他表的字段构建user表里不存在的字段,其他表就以info表为例吧
protected function getHosNameAttr($value, $data) {
$name = model('Info')->where('info_id', $data['id'])->value('hos_name');
return $name;
}
在user表里构造了hos_name字段,这个例子很简单,user表的主键id是info表的外键info_id,通过这个关系就可以将info里的字段映射到user表里,在后台只查询user表的数据就能用hos_name了,可以省去两表联合查询
如果又需要用到值,又需要用到文本的情况
protected function getArchivesAttr($value, $data) {
$archiveid = model('Info')->where('info_id', $data['id'])->value('archives_id');
$archivename = model('Archives')->where('id', $archiveid)->value('name');
return ['val' => $archiveid, 'text' => $archivename];
}
此示例,在user表里构建了archives字段,val存的是info表的archives_id字段,text是archives_id对应的在表archives里的name字段。省去了三表联合查询,这样在后台只需要查询user表就可以在前台调用archives字段了。
thinkphp5 获取器的的更多相关文章
- Thinkphp5.0 的使用模型Model的获取器与修改器
Thinkphp5.0 的使用模型Model的获取器.修改器.软删除 一.获取器 在model中使用 get+字段名+Attr,可以修改字段的返回值. 数据库中性别保存为,0未知.1男.2女,查询时返 ...
- thinkPHP5.0获取器获取原始数据
如果你定义了获取器的情况下,希望获取数据表中的原始数据,可以使用:$cate = Cate::get(1);// 通过获取器获取字段echo $cate->type;// 获取原始字段数据ech ...
- thinkPHP5.0获取器
获取器的作用是在获取数据的字段值后自动进行处理,例如,我们需要对状态值进行转换,可以使用: class Cate extends Model { public function getTypeAttr ...
- 窗口信息获取器 Spy4Win v0.20b 中文绿色版
软件名称:窗口信息获取器 Spy4Win v0.20b 中文绿色版软件类别:国产软件运行环境:Windows XP软件语言:简体中文授权方式:免费版软件大小:1.67 MB软件等级:整理时间:2012 ...
- tp5框架的获取器
tp5的获取器功能很强大,一下子就喜欢上了,你可以在模块里任意定义表里不存在的字段,在前台调用很方便.话不多说直接上demo: 1.命名规则 get + 属性名的驼峰命名+ Attr 直接就能在m ...
- 获取器操作都是针对数据而不是数据集的,要通过append()方法添加数据表不存在的字段
获取器操作都是针对数据而不是数据集的,要通过append()方法添加数据表不存在的字段 public function getMembership(){ //加入会员s_id = 1 $busines ...
- thinkphp模型中的获取器和修改器(根据字段名自动调用模型中的方法)
thinkphp模型中的获取器和修改器(根据字段名自动调用模型中的方法) 一.总结 记得看下面 1.获取器的作用是在获取数据的字段值后自动进行处理 2.修改器的作用是可以在数据赋值的时候自动进行转换处 ...
- php手记之05-tp5获取器与修改器
获取器 命名规范为: getFieldNameAttr 例如,我们需要对状态值进行转换,可以使用: <?php class User extends Model { public functio ...
- tp5获取器的用法。
1.命名规则 get + 属性名的驼峰命名+ Attr ------>在相应的model中创建方法 例如: protected function getSexAttr($value ...
随机推荐
- POJ 3660—— Cow Contest——————【Floyd传递闭包】
Cow Contest Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit ...
- Vue ajax跨域请求
Vue webpack-dev-server实现跨域请求 思路 配置webpack-dev-server,代理某一个路径到目标路径,同是更改源和重写 Vue里定义一个全部变量:site Vue.pro ...
- 设计模式在Spring
设计模式在spring中的使用1.工厂模式,这个很明显,在各种BeanFactory以及ApplicationContext创建中都用到了:2.模版模式,这个也很明显,在各种BeanFactory以及 ...
- [转]hash冲突的四种办法
原文地址:http://blog.csdn.net/qq_27093465/article/details/52269862 一)哈希表简介 非哈希表的特点:关键字在表中的位置和它之间不存在一个确定的 ...
- maven课程 项目管理利器-maven 2-2第一个maven案例hellomaven
maven 目录结构 pom.xml src -main -java -package -test -java -package -resources
- vue 实现二选一列表
<template> <div> <ul> <li :class="{active:classIndex==classNum}" clas ...
- C#中WinForm程序退出方法技巧总结[转]
这篇文章主要介绍了C#中WinForm程序退出方法,实例总结了技巧退出WinForm程序窗口的各种常用技巧,非常具有实用价值,需要的朋友可以参考下 本文实例总结了C#中WinForm程序退出方法技 ...
- Python基础学习之字符串(1)
字符串 由字符组成的序列,即字符串. 1.基本字符串操作 所有标准的序列操作(索引.切片.乘法.判断成员资格.求长度.取最小值和最大值)对字符串同样适用: >>> website=' ...
- 创建React工程:React工程模板
这是本人初学React做的学习笔记;讲的不是很深,只算是简单的进行介绍. 这是一个小系列.都是在同一个模板中搭建的,但是代码是不能正常执行的. >>index.js <!DOCTYP ...
- Python开发第五篇
面向对象程序设计 面向过程编程:就是分析问题的解决步骤,按部就班的编写代码解决问题 函数式编程:就是把代码封装到函数中,然后在使用时调用封装好的函数 面向对象编程:把一类事物所共有的属性和行为提取出来 ...