Area.php 935 字节
<?php

namespace App\Models\User;

use App\Models\BaseModel;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\hasMany;
use App\Models\Admin\User as AdminUser;

class Area extends BaseModel
{
    // 指定数据库表
    const TABLE = 'user_areas';
    protected $table = self::TABLE;

    /**
     * @return BelongsTo
     */
    public function user(): BelongsTo
    {
        if ($this->user_type === AdminUser::OBJ_NAME) {
            return $this->belongsTo(AdminUser::class, 'user_id');
        } else {
            return $this->belongsTo(User::class);
        }
    }

    /**
     * @return BelongsTo
     */
    public function admin(): BelongsTo
    {
        return $this->belongsTo(AdminUser::class, 'user_id');
    }

    /**
     * @return hasMany
     */
    public function safers()
    {
        return $this->hasMany(User::class, 'user_id')->where('role', 8);
    }
}