* @date 2020-01-23 00:14:56 */ declare(strict_types=1); namespace App\Model; use Hyperf\Database\Model\Events\Creating; use Hyperf\ModelCache\Cacheable; use Hyperf\ModelCache\CacheableInterface; class ManagerModel extends BaseModel implements CacheableInterface { // 使用自动缓存. use Cacheable; /** * 表名. * * @var string */ protected $table = 'manager'; /** * 隐藏字段. * * @var array */ protected $hidden = ['password', 'salt']; /** * 每个字段格式化数据类型. * * @var array */ protected $casts = [ 'id' => 'integer', 'created_at' => 'string', 'updated_at' => 'string', 'manager_id' => 'string', 'username' => 'string', 'nick' => 'string', 'locked_at' => 'string', 'role_id' => 'integer', 'role_name' => 'string', 'password' => 'string', 'salt' => 'string', 'email' => 'string', 'login_at' => 'string', ]; /** * 新数据创建时触发. * * @param Creating $event 事件. * * @return null */ public function creating(Creating $event) { $manager_id = $this->generateId('manager_id'); $this->manager_id = $manager_id; } /** * 关联角色. * @return \Hyperf\Database\Model\Relations\HasOne */ public function role() { return $this->hasOne(PermissionRoleModel::class, 'id', 'role_id'); } }