1.模型的获取器
普通用法
Model
<?php
namespace app\model;
use think\Model;
class User extends Model
{
public function getStatusAttr($value): string
{
$status = [-1=>'删除',0=>'禁用',1=>'正常',2=>'待审核'];
return $status[$value];
}
}
Controller
public function getAttr()
{
$user = User::find(19);
echo $user->status;
}
输出:
nothing用法
public function getAttr()
{
$user = User::find(19);
echo $user->status;
echo $user->nothing;
}
<?php
namespace app\model;
use think\Model;
class User extends Model
{
// public function getStatusAttr($value,$data): string
// {
// var_dump($data);
// halt($data);
// $status = [-1=>'删除',0=>'禁用',1=>'正常',2=>'待审核'];
// return $status[$value];
// }
public function getNothingAttr($value,$data)
{
var_dump($data);
$arr = [-1=>'删除',0=>'禁用',1=>'正常',2=>'待审核'];
return $arr[$data['status']];
}
}
//闭包动态获取器
User::WithAttr('status',function ($value){
return strtoupper($value);
})->select();
修改器
public function setEmailAttr($value): string
{
return strtoupper($value);
}