aRoles()->delete(); }); } /** * 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')->withTimestamps() ->withoutTrashed()->whereRaw($pivotTable.'.deleted_at IS NULL'); } public function system() { return $this->belongsTo(SystemModel::class, 'system_id', 'system_id'); } public function business() { return $this->belongsTo(BusinessModel::class, 'business_id', 'business_id'); } public function aRoles() { return $this->hasMany(RoleUsersModel::class, 'user_id'); } public function credits() { return $this->hasMany(SaleCreditModel::class, 'employee_id', 'employee_id'); } /** * 获取销售人员 * @param unknown $q */ public function scopeSale($q) { $q->whereHas('roles', function($q) { $q->where('slug', 'saleinfo');//销售角色 }); } /** * 数据options 用于页面出select * * @param unknown $select * @param unknown $where * @param unknown $order */ static public function dataOptions($select, $where = null, $order = []) { $query = self::select($select); if ($where) { $query = $query->where($where); } if ($order) { if (count($order) == count($order, 1)) { list ($attr, $desc) = $order; $query = $query->orderBy($attr, $desc); } else { foreach ($order as $one) { list ($attr, $desc) = $one; $query = $query->orderBy($attr, $desc); } } } list ($key, $name) = is_array($select) ? $select : explode(',', $select); $data = $query->groupBy($key)->get(); $options = []; foreach ($data as $one) { $options[$one->$key] = $one->$name; } return collect($options)->all(); } }