Salam semua, saya terperangkap dalam proses pembelajaran polisi laravel Saya tahu perbezaan antara polisi laravel dan perisian tengah, tetapi saya masih tidak tahu bagaimana untuk menggunakan polisi itu banyak,
Ini adalah jawapan imej tentang dasar yang saya temui di stackoverflow, http://stackoverflow.com/ques...
Maka ini adalah kod yang saya simpan di github semasa saya berlatih Jika ada sesiapa yang sudi menambah fungsi dasar pada kod saya, saya amat berterima kasih. Anda boleh menggunakan dasar untuk melakukan sebarang fungsi, asalkan anda menambahkan dasar padanya
https://github.com/GoogleYY/s...
Gate
boleh digunakan bersama, ia tidak rumit.Policy
didaftarkan dalam AuthServiceProvider Jika anda mendaftarkanAccountPolicy::class => keizinan. Tambah, padam, ubah suai dan semak
Model
Akaun
.Policy
和Gate
结合起来使用就行,不复杂。Policy
的注册在AuthServiceProvider里,如注册一个AccountPolicy::class => Account::class
,就表示当前User
是否有权限对Account
这个Model
进行增删改查。在
AccountPolicy
针对增删改查操作写上授权逻辑,如针对Delete
操作写上$user->id === $account->user_id
授权逻辑。如何触发这个授权逻辑呢?可以使用
Model Event
触发,如在EventServiceProvider::boot()
里
DalamGate与Policy的关系类似于Route与Controller的关系。
AccountPolicy
, tulis logik kebenaran untuk menambah, memadam, mengubah suai dan menyemak operasi, seperti$user->id === $account-> kod> operasi user_id
Logik kebenaran. 🎜 🎜Bagaimana untuk mencetuskan logik kebenaran ini? Ia boleh dicetuskan menggunakanModel Event
, seperti dalamEventServiceProvider::boot()
🎜 rrreee 🎜Selepas bantuan e-mel daripada master stackoverflow asing Amit Gupta, ia kini diselesaikan.
Langkah 1: Daftar dahulu polisi dan wujudkan hubungan sambungan antara Model dan dasar dalam AuthServiceProvider.php di bawah folder Providers, seperti berikut:
Langkah kedua ialah membuat PermissionPolicy baharu melalui perintah php artisan make:policy, dan tulis kawalan kebenaran yang berkaitan ke dalam dua dasar melalui fungsi, seperti ditunjukkan di bawah:
Langkah terakhir ialah menggunakan fungsi berkaitan yang ditetapkan oleh dasar ini dalam pengawal, seperti berikut: