4.4.10 修改器与访问器
set{Field}Attribute():修改器
- ORM类中的定义
<?php
namespace App\Model;
use Hyperf\Database\Model\Events\Created;
use Hyperf\Database\Model\Events\Creating;
use Hyperf\Database\Model\SoftDeletes;
use Hyperf\DbConnection\Model\Model;
/**
* @property int $id
* @property string $merchant_no
* @property string $title
* @property string $desc
* @property int $status
* @property string $meta
* @property string $cdn_addr
* @property \Carbon\Carbon $created_at
* @property \Carbon\Carbon $updated_at
* @property string $deleted_at
*/
class UserActivity extends Model
{
/**
* 表名
* @var string
*/
protected $table = 'user_activity';
...
/**
* title字段在保存时做修改
* @param $title
*/
public function setTitleAttribute($title)
{
// 出去title字段值的首位空格
$this->attributes['title'] = trim($title);
}
}
- 外部使用
<?php
namespace App\Controller;
class IndexController extends AbstractController
{
public function index()
{
// 获取一条数据信息
$userActivity = \App\Model\UserActivity::query()->find(10028);
// 将数据中title字段重新赋值 >>>> 此时触发setTitleAttribute
$userActivity->title = ' test ';
return [
'title' => $userActivity->title
];
}
}
输出
{
"title": "test"
}
get{Field}Attribute():访问器
- ORM类中的定义
<?php
namespace App\Model;
use Hyperf\Database\Model\Events\Created;
use Hyperf\Database\Model\Events\Creating;
use Hyperf\Database\Model\SoftDeletes;
use Hyperf\DbConnection\Model\Model;
/**
* @property int $id
* @property string $merchant_no
* @property string $title
* @property string $desc
* @property int $status
* @property string $meta
* @property string $cdn_addr
* @property \Carbon\Carbon $created_at
* @property \Carbon\Carbon $updated_at
* @property string $deleted_at
*/
class UserActivity extends Model
{
/**
* 表名
* @var string
*/
protected $table = 'user_activity';
...
/**
* title字段在获取时做修改
* @param $title
* @return string
*/
public function getTitleAttribute($title): string
{
return strtoupper($title);
}
}文档更新时间: 2021-09-24 17:48 作者:赵豪