You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.0 KiB
82 lines
2.0 KiB
<?php
|
|
/*
|
|
* @Descripttion:
|
|
* @version:
|
|
* @Author: GuaPi
|
|
* @Date: 2021-07-29 10:40:49
|
|
* @LastEditors: GuaPi
|
|
* @LastEditTime: 2021-08-09 17:40:52
|
|
*/
|
|
|
|
namespace App\Models;
|
|
|
|
use Dcat\Admin\Traits\HasDateTimeFormatter;
|
|
use Dcat\Admin\Traits\HasPermissions;
|
|
use Illuminate\Auth\Authenticatable;
|
|
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
|
use Illuminate\Support\Facades\Storage;
|
|
use Illuminate\Support\Facades\URL;
|
|
|
|
class BlockControlAdministrator extends Model implements AuthenticatableContract
|
|
{
|
|
//
|
|
use Authenticatable,
|
|
HasPermissions,
|
|
HasDateTimeFormatter;
|
|
|
|
const DEFAULT_ID = 1;
|
|
|
|
protected $fillable = ['username', 'password', 'name', 'avatar'];
|
|
|
|
/**
|
|
* Create a new Eloquent model instance.
|
|
*
|
|
* @param array $attributes
|
|
*/
|
|
public function __construct(array $attributes = [])
|
|
{
|
|
$connection = config('admin.database.connection') ?: config('database.default');
|
|
|
|
$this->setConnection($connection);
|
|
|
|
$this->setTable(config('admin.database.users_table'));
|
|
|
|
parent::__construct($attributes);
|
|
}
|
|
|
|
/**
|
|
* Get avatar attribute.
|
|
*
|
|
* @return mixed|string
|
|
*/
|
|
public function getAvatar()
|
|
{
|
|
$avatar = $this->avatar;
|
|
|
|
if ($avatar) {
|
|
if (!URL::isValidUrl($avatar)) {
|
|
$avatar = Storage::disk(config('admin.upload.disk'))->url($avatar);
|
|
}
|
|
|
|
return $avatar;
|
|
}
|
|
|
|
return admin_asset(config('admin.default_avatar') ?: '@admin/images/default-avatar.jpg');
|
|
}
|
|
|
|
/**
|
|
* A user has and belongs to many roles.
|
|
*
|
|
* @return BelongsToMany
|
|
*/
|
|
public function roles(): BelongsToMany
|
|
{
|
|
$pivotTable = config('admin.database.role_users_table');
|
|
|
|
$relatedModel = config('admin.database.roles_model');
|
|
|
|
return $this->belongsToMany($relatedModel, $pivotTable, 'user_id', 'role_id');
|
|
}
|
|
}
|
|
|