


So implementieren Sie mit ThinkPHP6 die Berechtigungsverwaltung für Benutzerrollen
Angesichts der kontinuierlichen Geschäftsentwicklung verfügen viele kleine und mittlere Unternehmen über eigene Benutzerverwaltungssysteme, und die Verwaltung von Benutzerrechten ist ein wichtiger Bestandteil davon. Um vertrauliche Informationen im System zu schützen und den normalen Geschäftsbetrieb sicherzustellen, müssen wir einen Rollenberechtigungsverwaltungsmechanismus verwenden, um sicherzustellen, dass Benutzer mit unterschiedlichen Rollen nur auf bestimmte Ressourcen und Daten zugreifen können.
In diesem Artikel wird das ThinkPHP6-Framework als Beispiel verwendet, um vorzustellen, wie die von ihm bereitgestellte Berechtigungskontroll-Middleware und Erweiterungspakete zur Implementierung der Benutzerrollen-Berechtigungsverwaltung verwendet werden.
- Rollentabelle und Berechtigungstabelle erstellen
Zuerst müssen wir zwei Datenbanktabellen definieren, eine ist die Rollentabelle, die zum Speichern von Systemrolleninformationen verwendet wird, und die andere ist die Berechtigungstabelle, die zum Speichern von Systemberechtigungsinformationen verwendet wird.
CREATE TABLE role
(role
(
id
int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
name
varchar(20) NOT NULL COMMENT '角色名称',
description
varchar(50) NOT NULL COMMENT '角色描述',
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色表';
CREATE TABLE permission
(
id
int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
name
varchar(20) NOT NULL COMMENT '权限名称',
description
varchar(50) NOT NULL COMMENT '权限描述',
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='权限表';
我们可以使用ThinkPHP提供的数据库迁移工具来创建表:php think migrate:run。
- 创建角色和权限模型
接下来,我们需要创建角色和权限的模型。在app/model目录下创建Role.php和Permission.php文件,代码如下:
namespace appmodel;
use thinkModel;
class Role extends Model
{
protected $table = 'role';
}
namespace appmodel;
use thinkModel;
class Permission extends Model
{
protected $table = 'permission';
}
- 创建角色和权限关联表
由于一个用户可能拥有多个角色,一个角色也可能对应多个权限,所以我们需要创建一个角色和权限的关联表。在数据库中创建一个role_permission表。
CREATE TABLE role_permission
(
id
int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
role_id
int(11) NOT NULL COMMENT '角色ID',
permission_id
int(11) NOT NULL COMMENT '权限ID',
PRIMARY KEY (id
),
KEY role_id
(role_id
),
KEY permission_id
(permission_id
id
int(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
name
varchar(20) NOT NULL COMMENT 'Rollenname',
description
varchar(50) NOT NULL COMMENT 'Rollenbeschreibung', PRIMARY KEY (id
)
CREATE TABLE permission
(
id
int(11) NOT NULL AUTO_INCREMENT COMMENT 'Primary key', name
varchar( 20) NOT NULL COMMENT 'Berechtigungsname',
description
varchar(50) NOT NULL COMMENT 'Berechtigungsbeschreibung', PRIMARY KEY (id
)
) ENGINE= InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Permission Table';
Wir können das von ThinkPHP bereitgestellte Datenbankmigrationstool verwenden, um die Tabelle zu erstellen: php think migrate:run.
- {
public function handle($request, Closure $next) { if (Session::has('user')) { $roles = Db::table('user') ->alias('u') ->leftJoin('role_user ru', 'u.id = ru.user_id') ->leftJoin('role r', 'ru.role_id = r.id') ->where('u.id', '=', Session::get('user')->id) ->field('r.id') ->select(); $permissions = Config::get('permissions'); foreach ($roles as $role) { $rolePermissions = Db::table('role_permission') ->where('role_id', '=', $role->id) ->field('permission_id') ->select(); foreach ($rolePermissions as $rolePermission) { if (in_array($rolePermission->permission_id, $permissions)) { return $next($request); } } } } abort(403, '没有权限'); }
Nach dem Login kopieren}
Erstellen Sie Rollen- und Berechtigungsmodelle
Als nächstes müssen wir Rollen- und Berechtigungsmodelle erstellen. Erstellen Sie die Dateien Role.php und Permission.php im Verzeichnis app/model. Der Code lautet wie folgt:
namespace appmodel;
use thinkModel;
- class Role erweitert Model
protected $table = 'role'; public function permissions() { return $this->belongsToMany( Permission::class, 'role_permission', 'role_id', 'permission_id' ); }
?< Wenn Sie mehrere Rollen haben, kann eine Rolle auch mehreren Berechtigungen entsprechen. Daher müssen wir eine Zuordnungstabelle für Rollen und Berechtigungen erstellen. Erstellen Sie eine Role_permission-Tabelle in der Datenbank.
CREATE TABLE role_permission
(
id
int(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
role_id
int(11) NOT NULL KOMMENTAR 'Rollen-ID', permission_id
int(11) NICHT NULL KOMMENTAR 'Berechtigungs-ID',
PRIMÄRSCHLÜSSEL (id
),
SCHLÜSSEL role_id</code > (<code>role_id
),
permission_id
(permission_id
)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Rollen-Berechtigungs-Zuordnungstabelle' ;
- use thinkModel;class Role erweitert Model
protected $table = 'permission'; public function roles() { return $this->belongsToMany( Role::class, 'role_permission', 'permission_id', 'role_id' ); }
< ?php
- {
use think acadeDb;
use think acadeSession;use think acadeConfig;
{
1 => 'user.create', 2 => 'user.read', 3 => 'user.update', 4 => 'user.delete',
}
Berechtigungskonfigurationsdatei erstellen
🎜🎜Um die Verwaltung von Systemberechtigungen zu erleichtern, können wir die von ThinkPHP bereitgestellte Konfigurationsfunktion verwenden, um alle Berechtigungen in die Konfigurationsdatei zu schreiben. Erstellen Sie eine Datei „permissions.php“ im Konfigurationsverzeichnis. Der Code lautet wie folgt: 🎜🎜// ... 'check_auth' => appmiddlewareCheckAuth::class,
public function create() { $this->middleware('check_auth'); // ... }

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Um das ThinkPHP-Projekt auszuführen, müssen Sie: Composer installieren, das Projektverzeichnis aufrufen und http://localhost:8000 aufrufen.

ThinkPHP verfügt über mehrere Versionen, die für verschiedene PHP-Versionen entwickelt wurden. Zu den Hauptversionen gehören 3.2, 5.0, 5.1 und 6.0, während Nebenversionen dazu dienen, Fehler zu beheben und neue Funktionen bereitzustellen. Die neueste stabile Version ist ThinkPHP 6.0.16. Berücksichtigen Sie bei der Auswahl einer Version die PHP-Version, die Funktionsanforderungen und den Community-Support. Für optimale Leistung und Support wird empfohlen, die neueste stabile Version zu verwenden.

So verwenden Sie das Layui-Framework, um ein Berechtigungsverwaltungssystem zu entwickeln, das die Mehrbenutzeranmeldung unterstützt. Einführung: Im modernen Internetzeitalter müssen immer mehr Anwendungen die Mehrbenutzeranmeldung unterstützen, um personalisierte Funktionen und Berechtigungsverwaltung zu erreichen. Um die Sicherheit des Systems und den Datenschutz zu schützen, müssen Entwickler bestimmte Mittel verwenden, um Mehrbenutzer-Anmelde- und Berechtigungsverwaltungsfunktionen zu implementieren. In diesem Artikel wird erläutert, wie Sie mithilfe des Layui-Frameworks ein Berechtigungsverwaltungssystem entwickeln, das die Anmeldung mehrerer Benutzer unterstützt, und es werden spezifische Codebeispiele aufgeführt. Vorbereitung vor Beginn der Entwicklung

Schritte zum lokalen Ausführen von ThinkPHP Framework: Laden Sie ThinkPHP Framework herunter und entpacken Sie es in ein lokales Verzeichnis. Erstellen Sie einen virtuellen Host (optional), der auf das ThinkPHP-Stammverzeichnis verweist. Konfigurieren Sie Datenbankverbindungsparameter. Starten Sie den Webserver. Initialisieren Sie die ThinkPHP-Anwendung. Greifen Sie auf die URL der ThinkPHP-Anwendung zu und führen Sie sie aus.

So implementieren Sie ein Berechtigungsverwaltungssystem in Laravel Einführung: Mit der kontinuierlichen Entwicklung von Webanwendungen ist das Berechtigungsverwaltungssystem zu einer der Grundfunktionen vieler Anwendungen geworden. Laravel bietet als beliebtes PHP-Framework eine Fülle von Tools und Funktionen zur Implementierung von Berechtigungsmanagementsystemen. In diesem Artikel wird die Implementierung eines einfachen und leistungsstarken Berechtigungsverwaltungssystems in Laravel vorgestellt und spezifische Codebeispiele bereitgestellt. 1. Gestaltungsideen des Berechtigungsverwaltungssystems Bei der Gestaltung des Berechtigungsverwaltungssystems müssen die folgenden Schlüsselpunkte berücksichtigt werden: Rollen und

Leistungsvergleich von Laravel- und ThinkPHP-Frameworks: ThinkPHP schneidet im Allgemeinen besser ab als Laravel und konzentriert sich auf Optimierung und Caching. Laravel schneidet gut ab, aber für komplexe Anwendungen ist ThinkPHP möglicherweise besser geeignet.

„Entwicklungsvorschläge: So verwenden Sie das ThinkPHP-Framework zur Implementierung asynchroner Aufgaben“ Mit der rasanten Entwicklung der Internettechnologie stellen Webanwendungen immer höhere Anforderungen an die Verarbeitung einer großen Anzahl gleichzeitiger Anforderungen und komplexer Geschäftslogik. Um die Systemleistung und das Benutzererlebnis zu verbessern, erwägen Entwickler häufig die Verwendung asynchroner Aufgaben, um einige zeitaufwändige Vorgänge auszuführen, z. B. das Senden von E-Mails, das Verarbeiten von Datei-Uploads, das Erstellen von Berichten usw. Im Bereich PHP bietet das ThinkPHP-Framework als beliebtes Entwicklungsframework einige praktische Möglichkeiten zur Implementierung asynchroner Aufgaben.

Das Problem, dass temporäre Ordner nicht ohne Schreibberechtigungen installiert werden können, bereitet vielen Benutzern Kopfzerbrechen. Tatsächlich ist der Vorgang nicht sehr mühsam. Sie müssen nur Ihr erweitertes Menü aufrufen, um Änderungen vorzunehmen Berechtigungen. Der temporäre Ordner kann nicht ohne Schreibberechtigung installiert werden: 1. Klicken Sie zunächst mit der rechten Maustaste auf „Dieser Computer“ auf dem Desktop und dann auf „Eigenschaften“. 2. Klicken Sie dann unten auf „Erweiterte Systemeinstellungen“. 3. Klicken Sie dann unten im Fenster auf „Umgebungsvariablen“. 4. Danach können Sie das Umgebungsvariablenfenster öffnen, auf die tmp-Datei klicken und „Bearbeiten“ auswählen. 5. Klicken Sie anschließend im sich öffnenden Fenster auf „Dateien durchsuchen“. 6. Legen Sie den neuen Variablenordner fest und klicken Sie auf OK. 7. Abschließend den Erfolg abwarten.
