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

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