tp6Day4--模型的获取器和修改器

95 阅读1分钟

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;
}

输出:

image.png

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);
}