停车场管理系统
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.
 
 

80 lines
1.9 KiB

<?php
namespace App\Models;
use App\Services\AdminTranslationService;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Notifications\Notifiable;
class AdminRoles extends Model
{
use HasFactory, Notifiable, SoftDeletes;
protected $primaryKey = 'id';
/**
* The attributes that are mass assignable.
* @var array<int, string>
*/
protected $fillable
= [
'name',
'level',
'remark'
];
/**
* The attributes that should be hidden for serialization.
* @var array<int, string>
*/
protected $hidden
= [
'updated_at',
'deleted_at',
];
public static function getRolesList(): array
{
$where = ['status' => 1];
$columns = ['id', 'name'];
$data = self::query()->where($where)->select($columns)->get()->toArray(
);
foreach ($data as $key => $item) {
$data[$key]['name']
= AdminTranslationService::getTranslationTypeName(
$item['id'],
11,
$item['name']
);
}
return $data;
}
public function adminUsers(): BelongsToMany
{
return $this->belongsToMany(
AdminUsers::class,
AdminRoleUsers::class,
'role_id',
'user_id'
);
}
public function menus(): BelongsToMany
{
return $this->belongsToMany(
AdminMenu::class,
AdminRoleMenu::class,
'role_id',
'menu_id'
);
}
public function getCreatedAtAttribute($value): string
{
return $value ? get_datetime('datetime', strtotime($value)) : '';
}
}