cari
Rumahrangka kerja phpLaravelMari kita bincangkan tentang pakej pengembangan pengurusan kebenaran dalam Laravel

Artikel ini membawakan anda pengetahuan yang berkaitan tentang laravel, yang terutamanya memperkenalkan isu yang berkaitan dengan pakej pengembangan pengurusan kebenaran Mari kita lihat bersama-sama.

Mari kita bincangkan tentang pakej pengembangan pengurusan kebenaran dalam Laravel

[Cadangan berkaitan: tutorial video laravel]

Apakah itu peranan berbilang pengguna

Sebagai contoh , Sebagai contoh, forum yang biasa kita gunakan

juruweb------mempunyai kuasa tertinggi, dan yang paling penting ialah kuasa untuk mengurus pengguna

pentadbir----- bagi sesetengah pihak Pengurusan artikel tidak akan memberi kesan besar pada tapak web

vip ----- Mempunyai kebenaran muat turun untuk beberapa sumber

Pengguna biasa---- hanya boleh membuat perbandingan mudah Penambahan, pemadaman, pengubahsuaian, ulasan, dsb. artikel sendiri

Pelawat ---- hanya boleh melakukan penyemakan imbas asas

Buat jadual


  • peranan ------- Maklumat peranan: Juruweb, dsb.
  • kebenaran ------- Maklumat kebenaran: Kandungan pengurusan, dsb. .
  • model_has_roles ------- Peranan sepadan model = Peranan sepadan pengguna
  • peranan_has_permissions ------- Keizinan sepadan peranan = Apakah keizinan yang dimiliki oleh peranan itu
  • model_has_permissions ----- -- Model yang sepadan dengan kebenaran = Pengguna mempunyai kebenaran

Mari kita selesaikan hubungan

Kebenaran (kebenaran) dan Peranan (peranan), satu kebenaran mungkin dimiliki oleh berbilang peranan dan satu peranan mungkin mempunyai berbilang perhubungan Persatuan: banyak-ke-banyak (peranan_mempunyai_keizinan)

<.>Pengguna dan Kebenaran Satu-ke-banyak (model_mempunyai_keizinan)

Pengguna dan Peranan Satu-ke-banyak (model_mempunyai_peranan )

Menjelang masa Said, perhubungan itu jelas, apabila pengguna mempunyai peranan atau kebenaran apa, operasi yang sepadan dilakukan

1 Pasang pakej pengembangan

composer require "spatie/laravel-permission:~2.7"
Jana fail pemindahan pangkalan data:

php artisan vendor:publish --provider="SpatiePermissionPermissionServiceProvider" --tag="migrations"

Anda boleh melihat maklumat jadual yang berkaitan dalam direktori migrasi dan lakukan migrasi pangkalan data

php artisan migrate
Jana maklumat konfigurasi:

php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"
Muat di bawah model Pengguna

.....
use Spatie\Permission\Traits\HasRoles;  // use

class User extends Authenticatable
{

    use HasRoles;  // 加载角色相关信息
    .....
Buat peranan dan pengguna

use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;

.....
$role = Role::create(['name' => 'writer']);  // 创建角色
$permission = Permission::create(['name' => 'edit articles']);// 创建权限

Gunakan


Tambah kebenaran kepada pengguna

$user->givePermissionTo('edit articles');
Tambahkan peranan kepada pengguna

$user->assignRole('writer');

$user->assignRole(['writer', 'admin']);
Padam kebenaran kepada pengguna

$user->revokePermissionTo('edit articles');
Tambahkan peranan pada peranan Tambah kebenaran

$role->givePermissionTo('edit articles');
Tambahkan kebenaran pada peranan

$role->givePermissionTo('edit articles');
Batalkan kebenaran dan tambahkan yang baharu

$user->syncPermissions(['edit articles', 'delete articles']);
Dapatkan koleksi peranan pengguna semasa

$user->getRoleNames();
Segerakkan berbilang peranan kepada kebenaran

$role->syncPermissions($permissions); //  @param array $permissions

$permission->syncRoles($roles);
Alih keluar kebenaran daripada peranan

$role->revokePermissionTo($permission);
$permission->removeRole($role);
Dapatkan senarai kebenaran pengguna semasa

$permissions = $user->permissions;
Dapatkan semua kebenaran pengguna, sama ada kebenaran langsung (odel_has_permissions), atau dapatkannya daripada peranan, atau dapatkan daripada kedua-duanya

$permissions = $user->getDirectPermissions();
$permissions = $user->getPermissionsViaRoles();
$permissions = $user->getAllPermissions();
Dapatkan koleksi koleksi peranan pengguna

$roles = $user->getRoleNames(); // Returns a collection
Kembalikan Pengguna dengan peranan tertentu | Mengembalikan hanya pengguna dengan peranan 'penulis'

$users = User::role('writer')->get(); //
Mengembalikan pengguna dengan kebenaran tertentu

Kelas pengesahan

$users = User::permission('edit articles')->get();

Semak sama ada terdapat kebenaran tertentu
$user->hasRole('writer');

Semak jika terdapat peranan|atau lajur tertentu


Lulus nilai id untuk menentukan sama ada terdapat kebenaran tertentu

$user->hasPermissionTo('edit articles');

$user->can('edit articles');
Sama ada ia mempunyai set kebenaran

$user->hasRole('writer');

$user->hasAnyRole(Role::all());

$user->hasAllRoles(Role::all());
Semak sama ada peranan mempunyai kebenaran tertentu | Padamkan kebenaran tertentu

$user->hasPermissionTo('1');
$user->hasPermissionTo(Permission::find(1)->id);
$user->hasPermissionTo($somePermission->id);

Templat menggunakan

$user->hasAnyPermission(['edit articles', 'publish articles', 'unpublish articles']);

$role->hasPermissionTo('edit articles'); 

$role->revokePermissionTo('edit articles'); // 删除

pengisian data


@role('writer')
    I am a writer!
@else
    I am not a writer...
@endrole

------------------------

@hasrole('writer')
    I am a writer!
@else
    I am not a writer...
@endhasrole

------------------------

@can('edit articles') // 拥有某个权限 可执行操作
//
@endcan
Petua: Jika dalam pangkalan data Untuk mengubah suai jadual maklumat berkaitan kebenaran, anda mesti menggunakan kaedah mengosongkan cache

[Cadangan berkaitan:
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;

class RolesAndPermissionsSeeder extends Seeder
{
    public function run()
    {
        // Reset cached roles and permissions
        app()['cache']->forget('spatie.permission.cache');

        // create permissions
        Permission::create(['name' => 'edit articles']);
        Permission::create(['name' => 'delete articles']);
        Permission::create(['name' => 'publish articles']);
        Permission::create(['name' => 'unpublish articles']);

        // create roles and assign created permissions

        $role = Role::create(['name' => 'writer']);
        $role->givePermissionTo('edit articles');

        $role = Role::create(['name' => 'moderator']);
        $role->givePermissionTo(['publish articles', 'unpublish articles']);

        $role = Role::create(['name' => 'super-admin']);
        $role->givePermissionTo(Permission::all());
    }
}
tutorial video laravel

]

Atas ialah kandungan terperinci Mari kita bincangkan tentang pakej pengembangan pengurusan kebenaran dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:CSDN. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Fleksibiliti Laravel: Dari laman web mudah ke sistem yang kompleksFleksibiliti Laravel: Dari laman web mudah ke sistem yang kompleksApr 13, 2025 am 12:13 AM

Projek Pembangunan Laravel telah dipilih kerana fleksibiliti dan kuasa untuk memenuhi keperluan saiz dan kerumitan yang berbeza. Laravel menyediakan sistem penghalaan, eloquentorm, baris perintah artisan dan fungsi lain, menyokong pembangunan dari blog mudah ke sistem peringkat perusahaan yang kompleks.

Laravel (PHP) vs Python: Persekitaran Pembangunan dan EkosistemLaravel (PHP) vs Python: Persekitaran Pembangunan dan EkosistemApr 12, 2025 am 12:10 AM

Perbandingan antara Laravel dan Python dalam persekitaran pembangunan dan ekosistem adalah seperti berikut: 1. Persekitaran pembangunan Laravel adalah mudah, hanya PHP dan komposer diperlukan. Ia menyediakan pelbagai pakej lanjutan seperti Laravelforge, tetapi penyelenggaraan pakej lanjutan mungkin tidak tepat pada masanya. 2. Persekitaran pembangunan Python juga mudah, hanya Python dan PIP diperlukan. Ekosistem adalah besar dan meliputi pelbagai bidang, tetapi pengurusan versi dan pergantungan mungkin kompleks.

Laravel dan backend: Powering Web Application LogicLaravel dan backend: Powering Web Application LogicApr 11, 2025 am 11:29 AM

Bagaimanakah Laravel memainkan peranan dalam logik backend? Ia memudahkan dan meningkatkan pembangunan backend melalui sistem penghalaan, eloquentorm, pengesahan dan kebenaran, acara dan pendengar, dan pengoptimuman prestasi. 1. Sistem penghalaan membolehkan definisi struktur URL dan logik pemprosesan permintaan. 2.eloquentorm memudahkan interaksi pangkalan data. 3. Sistem pengesahan dan kebenaran adalah mudah untuk pengurusan pengguna. 4. Acara dan pendengar melaksanakan struktur kod yang ditambah dengan longgar. 5. Pengoptimuman prestasi meningkatkan kecekapan aplikasi melalui caching dan beratur.

Mengapa Laravel begitu popular?Mengapa Laravel begitu popular?Apr 02, 2025 pm 02:16 PM

Populariti Laravel termasuk proses pembangunan mudahnya, menyediakan persekitaran pembangunan yang menyenangkan, dan ciri -ciri yang kaya. 1) Ia menyerap falsafah reka bentuk Rubyonrails, menggabungkan fleksibiliti PHP. 2) Menyediakan alat seperti eloquentorm, enjin templat bilah, dan lain -lain untuk meningkatkan kecekapan pembangunan. 3) Mekanisme suntikan seni bina dan ketergantungan MVC menjadikan kod lebih modular dan boleh diuji. 4) Menyediakan alat debugging yang kuat dan kaedah pengoptimuman prestasi seperti sistem caching dan amalan terbaik.

Mana yang lebih baik, Django atau Laravel?Mana yang lebih baik, Django atau Laravel?Mar 28, 2025 am 10:41 AM

Kedua-dua Django dan Laravel adalah kerangka kerja penuh. Django sesuai untuk pemaju python dan logik perniagaan yang kompleks, manakala Laravel sesuai untuk pemaju PHP dan sintaks elegan. 1.Django didasarkan pada python dan mengikuti falsafah "lengkap bateri", sesuai untuk perkembangan pesat dan kesesuaian yang tinggi. 2. Laravel didasarkan pada PHP, menekankan pengalaman pemaju, dan sesuai untuk projek kecil dan sederhana.

PHP atau Laravel mana yang lebih baik?PHP atau Laravel mana yang lebih baik?Mar 27, 2025 pm 05:31 PM

PHP dan Laravel tidak dapat dibandingkan secara langsung, kerana Laravel adalah rangka kerja berasaskan PHP. 1.Php sesuai untuk projek kecil atau prototaip cepat kerana ia mudah dan langsung. 2. Laravel sesuai untuk projek besar atau pembangunan yang cekap kerana ia menyediakan fungsi dan alat yang kaya, tetapi mempunyai lengkung pembelajaran yang curam dan mungkin tidak sebaik php tulen.

Adakah Laravel adalah frontend atau backend?Adakah Laravel adalah frontend atau backend?Mar 27, 2025 pm 05:31 PM

LaravelisabackendFramWorkBuiltonPHP, Direka ForweBapplicationDevelopment.itfocusesonServer-Sidelogic, DatabaseManagement, andApplications Structure, andCanbeIntegratedWithFrontendTechnologiesLikeVue.jsorreactorfull-stackdevelopment.

Bagaimana saya membuat dan menggunakan arahan pisau tersuai di laravel?Bagaimana saya membuat dan menggunakan arahan pisau tersuai di laravel?Mar 17, 2025 pm 02:50 PM

Artikel ini membincangkan membuat dan menggunakan arahan pisau tersuai di Laravel untuk meningkatkan templat. Ia meliputi arahan yang menentukan, menggunakannya dalam templat, dan menguruskannya dalam projek besar, menonjolkan manfaat seperti kebolehgunaan semula kod yang lebih baik dan r yang lebih baik dan r

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)