Dans les projets Laravel, la mise en œuvre de fonctions d'exportation et d'importation de données basées sur les autorisations est une exigence relativement courante. Cet article présentera comment implémenter cette fonction via certains packages d'extension et mécanismes de gestion des autorisations fournis par le framework Laravel.
Laravel-Excel est un package d'extension d'importation et d'exportation Excel très facile à utiliser. Il fournit une API simple qui peut facilement lire et écrire des fichiers Excel. Voici les étapes simples pour importer et exporter à l’aide de Laravel-Excel.
Dépendances d'installation :
composer require maatwebsite/excel
Ajoutez les fournisseurs de services suivants dans les fournisseurs du fichier config/app.php :
MaatwebsiteExcelExcelServiceProvider::class,
Utilisez la commande artisan pour générer le fichier de configuration :
php artisan vendor:publish --provider="MaatwebsiteExcelExcelServiceProvider"
A ce moment, le config/excel. php sera généré, nous pouvons configurer nos propres méthodes d'importation et d'exportation Excel en le modifiant.
Introduisez l'espace de noms dans le contrôleur qui doit importer et exporter Excel :
use MaatwebsiteExcelFacadesExcel;
Exporter Excel :
public function export(Request $request) { $this->authorize('permission_name'); //权限验证 Excel::create('filename', function($excel) use ($data) { $excel->sheet('sheet_name', function($sheet) use ($data) { $sheet->fromArray($data); }); })->export('xlsx'); }
Importer Excel :
public function import(Request $request) { $this->authorize('permission_name'); //权限验证 $file = $request->file('file'); Excel::load($file, function($reader) { $results = $reader->all(); //对导入的数据进行处理 }); }
Laravel fournit un très mécanisme de gestion des autorisations facile à utiliser. Nous pouvons authentifier les rôles des utilisateurs en utilisant la propre fonction Auth de Laravel. Vous trouverez ci-dessous un exemple de code pour les autorisations qui contrôlent l’importation et l’exportation de données.
Tout d'abord, définissez les noms d'autorisation pour les opérations d'importation et d'exportation dans la base de données :
//数据库迁移文件 public function up() { Schema::create('permissions', function (Blueprint $table) { $table->increments('id'); $table->string('name')->unique(); $table->string('display_name')->nullable(); $table->string('description')->nullable(); $table->timestamps(); }); DB::table('permissions')->insert([ ['name' => 'export_data', 'display_name' => '数据导出', 'description' => '可以导出数据'], ['name' => 'import_data', 'display_name' => '数据导入', 'description' => '可以导入数据'], ]); }
Ensuite, dans le module de gestion des utilisateurs, définissez les rôles et les autorisations pour l'utilisateur :
//在用户管理模块中为用户定义角色和权限 $user = User::find(1); $exportDataPermission = Permission::where('name', 'export_data')->first(); $importDataPermission = Permission::where('name', 'import_data')->first(); $adminRole = new Role(); $adminRole->name = 'admin'; $adminRole->display_name = '系统管理员'; $adminRole->description = '拥有系统所有权限'; $adminRole->save(); $user->attachRole($adminRole); $adminRole->attachPermissions([$exportDataPermission, $importDataPermission]);
Enfin, dans le Controller, utilisez la méthode d'autorisation pour autoriser le rôle utilisateur Authentification :
public function export() { $this->authorize('export_data'); //进行数据导出操作 } public function import(Request $request) { $this->authorize('import_data'); //进行数据导入操作 }
Ce qui précède explique comment utiliser le package d'extension de Laravel et le mécanisme de gestion des autorisations pour implémenter des fonctions d'importation et d'exportation de données basées sur les autorisations. En contrôlant les rôles et les autorisations des utilisateurs, un contrôle plus précis des autorisations peut être obtenu pour protéger la sécurité des données du système.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!