| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | <?phpnamespace App\Models;use App\Constants\HttpStatus;use Illuminate\Contracts\Auth\Authenticatable;use Illuminate\Database\Eloquent\Model;use Exception;use Illuminate\Database\Eloquent\Builder;/** * Admin * @mixin Builder * @method static Builder|static where($column, $operator = null, $value = null, $boolean = 'and') */class Admin extends Model implements Authenticatable{    use \Illuminate\Auth\Authenticatable;  // 使用 Auth 认证相关功能    protected $table = 'admin';    protected $hidden = ['password', 'created_at', 'updated_at'];    protected $fillable = ['username','nickname','password','sex','cellphone','email','remarks', 'created_at', 'updated_at'];    protected $appends = ['roles_ids', 'roles_names'];    public static function login($username, $password)    {        $map = [];        $map[] = ['username', '=', $username];        $user = new Admin();        $user = $user->where($map)->first();        if (!$user) throw new Exception('', HttpStatus::USER_DOES_NOT_EXIST);        if (!password_verify($password, $user->password)) throw new Exception('', HttpStatus::PASSWORDS_ERROR);        return $user;    }    public function roles()    {        return $this->belongsToMany(Role::class, 'role_user', 'user_id', 'role_id');    }    public function getRolesIdsAttribute()    {        return $this->roles->pluck('id')->toArray();    }    public function getRolesNamesAttribute()    {        return $this->roles->pluck('display_name')->toArray();    }}
 |