composer安装下 spatie/macroable
composer require spatie/macroable
chatgpt给的示例
use think\Model;
use Spatie\Macroable\Macroable;
class User extends Model
{
//在user的模型里面使用Macroable
use Macroable;
}
//在别处调用User模型的时候 静态调用macro方法 定义方法名和方法逻辑
// 添加一个宏 相当于在User模型文件里面新建了一个shout方法
User::macro('shout', function() {
return strtoupper($this->name);
});
//使用示例
// 使用这个宏
$user = User::find(1);
//在这 模型->shout() 实际上就是在调用刚才定义的方法
echo $user->shout(); // 输出用户名称的大写形式