57 lines
1.3 KiB
PHP
57 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Dcat\Admin\Traits\HasDateTimeFormatter;
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use App\Casts\JsonArray;
|
|
use Illuminate\Database\Eloquent\Builder;
|
|
|
|
class Vip extends Model
|
|
{
|
|
use HasFactory, HasDateTimeFormatter;
|
|
|
|
const TIME_YEAR = 'year';
|
|
const TIME_MONTH = 'month';
|
|
const TIME_DAY = 'day';
|
|
|
|
const STATUS_ENABLE = 1;
|
|
const STATUS_DISABLE = 0;
|
|
|
|
protected $fillable = ['name', 'times', 'sort', 'status', 'gift', 'price', 'description'];
|
|
|
|
protected $casts = [
|
|
'times' => 'json',
|
|
'gift' => 'json'
|
|
];
|
|
|
|
public static $timeMap = [
|
|
self::TIME_YEAR => '年',
|
|
self::TIME_MONTH => '月',
|
|
self::TIME_DAY => '天',
|
|
];
|
|
|
|
public static $statusMap = [
|
|
self::STATUS_ENABLE => '可用',
|
|
self::STATUS_DISABLE => '不可用'
|
|
];
|
|
|
|
protected static function booted()
|
|
{
|
|
static::addGlobalScope('sort', function (Builder $builder) {
|
|
$builder->orderBy('sort', 'asc');
|
|
});
|
|
}
|
|
|
|
public function users()
|
|
{
|
|
return $this->belongsToMany(User::class, 'user_vips', 'vip_id', 'user_id');
|
|
}
|
|
|
|
public function hasUser()
|
|
{
|
|
return $this->users()->exists();
|
|
}
|
|
}
|