controller/Index.php
<?php
namespace app\index\controller;
use think\Controller;
use app\index\model\User;
class Index extends Controller
{
public function index()
{
$res=User::get(2);
dump($res->sex);//输出转换后字段值
dump($res->toArray());//获取到转换后数组
dump($res->getData());//获取原生数组
}
}
model/User.php
<?php
namespace app\index\model;
use think\Model;
classUser extends Model
{
public function getSexAttr(){
switch ($val) {
case '1':
return "男";
break;
case '2':
return "女";
break;
default:
return "未知";
break;
}
}
}
在Model文件中User模型类中,生成getSexAttr($val)方法
成员方法(get字段名Attr)[字段名首字母大写]
在model中使用 后面有代码
在controller中use下model中的类(该类需继承model类)
后利用各种查询方法获取数据值
可利用toArray获取改后数据
可利用getData获取改前数据
<?php namespace app\index\model; use think\Model; class User extends Model{ #获取器的设置 get字段名Attr(注意字段名开头大写) public function getSexAttr($value){ switch ($value) { case '1': return '男'; break; case '2': return '女'; break; default: return '未知'; break; } } }
<?php namespace app\index\controller; use think\Controller; use app\index\model\User; class Index extends Controller{ public function index(){ $res = User::get(2); dump($res->sex); dump ($res->toArray());//toArray()获取改后数据 dump($res->getData());//getData()获取原始数据 } }
模型获取器的设置 注意格式 get字段属性名Attr 会自动调用
可利用toArray获取改后数据
可利用getData获取原始数据
成员方法(get字段名Attr)[字段名首字母大写]
在model中使用 后面有代码
在controller中use下model中的类(该类需继承model类)
后利用各种查询方法获取数据值
可利用toArray获取改后数据
可利用getData获取改前数据
public function get字段名tAttr($value) { /*($字段名 首字母不用大写)*/ $字段名 = [-1=>'***',0=>'***',1=>'***',2=>'***']; return $字段名[$value]; } public function get字段名Attr($val) { switch($val){ case '1': return "***"; break; case '2': return "***"; break; case ~~: break; default: return "***"; break; } }
<?php
namespace
app\index\model;
use
think\Model;
class
User
extends
Model{
public
function
getSexAttr(
$val
){
switch
(
$val
){
case
'1'
:
return
"男"
;
break
;
case
'2'
:
return
"女"
;
break
;
default
:
return
"未知"
;
break
;
}
}
}
模型获取器 成员方法(get字段名Attr)[字段名首字母大写] 在model中使用 在controller中use下model中的类(该类需继承model类),利用 类名::get() 进行获取数据值 可利用toArray获取改后数据 可利用getData获取改前数据
可以在控制器里输出模型定义好的内容
<?php namespace app\index\model; use think\Model; class User extends Model{ public function getSexAttr($val){ switch($val){ case '1': return "男"; break; case '2': return "女"; break; default: return "未知"; break; } } }
获取器的设置
格式固定 get字段名Attr 获取器的设置
获取器getXxxAttr() 对字段值进行加工,更改数据获取之后返回的值;
可利用toArray获取改后数据
可利用getData获取原始数据
参考笔记:https://www.imooc.com/notepad/2013ae
模型获取器:
首先设置User模型:
<?php namespace app\index\model; use think\Model; class User extends Model{ #get+字段名+Attr public function getGenderAttr($val){ switch ($val){ case "1"; return '男'; break; case "2"; return '女'; break; default; return '未知'; break; } } }
然后在index控制器中操作:
<?php namespace app\index\controller; use think\Controller; use app\index\model\User; class Index extends Controller { public function index(){ $res = User::get(1); dump($res->gender);//获取性别单栏数据 dump($res->toArray());//以数组形式获取整条数据,性别显示为男/女/未知 dump($res->getData());//以原始形式获取整条数据,性别显示为1/2/其他 } }