Bagaimana saya menentukan dasar untuk model yang fasih?
Jun 20, 2025 am 12:15 AMUntuk menentukan dan menggunakan dasar-dasar dalam Orm Laravel dengan berkesan, ikuti langkah-langkah berikut: 1. Buat kelas dasar menggunakan perintah Artisan PHP Artisan Make: Policy Postpolicy-Model = Pos untuk menghasilkan dasar khusus model atau mandiri. 2. Daftar dasar dalam authServiceProvider.php dengan memetakan model ke dasarnya di dalam array dasar $. 3. Tentukan kaedah kebenaran seperti kemas kini, lihat, atau padam dalam kelas dasar, masing -masing menerima pengguna dan pilihan model untuk menguatkuasakan peraturan seperti pemeriksaan pemilikan. 4. Menguatkuasakan dasar dalam pengawal melalui $ ini-> memberi kuasa (), dalam middleware menggunakan boleh: kemas kini, pos, atau dalam templat bilah dengan arahan @CAN, memastikan kawalan akses yang bersih, boleh dipelihara, dan konsisten sepanjang aplikasi anda.
Apabila bekerja dengan Orm fasih Laravel, menentukan dasar membantu anda menguruskan logik kebenaran dengan cara yang bersih dan teratur. Idea utama adalah untuk memisahkan kawalan akses dari pengawal anda dengan menggunakan kelas dasar yang berdedikasi.
Berikut adalah cara anda boleh menentukan dan menggunakan dasar untuk model fasih dengan berkesan.
1. Buat kelas dasar
Langkah pertama ialah menjana kelas dasar. Laravel menyediakan perintah artisan yang menjadikannya mudah:
PHP Artisan Make: Polisi Postpolicy -Model = Post
Ini mewujudkan kelas PostPolicy
di dalam direktori app/Policies
dan secara automatik mengikatnya ke model Post
.
Jika anda mahukan dasar yang berdiri sendiri (tidak terikat dengan model tertentu), hanya menghilangkan pilihan --model
.
Petua: Pastikan direktori Policies
wujud di bawah app
. Jika tidak, buat secara manual.
2. Daftar Dasar dalam Penyedia Perkhidmatan
Sebaik sahaja dicipta, anda perlu mendaftarkan dasar anda supaya Laravel tahu model yang dimilikinya.
Buka AppServiceProvider.php
(atau lebih baik lagi, penyedia perkhidmatan khusus seperti AuthServiceProvider.php
) dan tambahkan pemetaan di dalam kaedah boot()
:
Gunakan App \ Models \ Post; Gunakan App \ Policies \ Postpolicy; Dasar $ dilindungi = [ Post :: Class => Postpolicy :: Class, ];
Ini memberitahu Laravel untuk menggunakan PostPolicy
apabila memeriksa keizinan untuk model Post
.
PENTING: Jangan lupa untuk mengimport kedua -dua model dan dasar di bahagian atas fail.
3. Tentukan peraturan kebenaran di dalam dasar
Setiap kaedah dalam dasar anda sepadan dengan tindakan seperti view
, create
, update
, atau delete
.
Inilah yang kelihatan seperti PostPolicy
Asas:
Kemas kini Fungsi Awam (Pengguna $, Pengguna, Pos $ Pos) { kembali $ user-> id === $ post-> user_id; }
Ini bermakna hanya pengguna yang memiliki siaran boleh mengeditnya.
Anda juga boleh menentukan kaedah before
dalam dasar anda untuk pemeriksaan global - seperti membenarkan pentadbir melakukan apa -apa sebelum peraturan individu dinilai.
4. Gunakan dasar dalam permohonan anda
Sekarang bahawa dasar anda disediakan, anda boleh menyemak kebenaran dalam beberapa cara:
- Dalam pengawal (disyorkan):
$ pos = pos :: findOrfail ($ id); $ this-> Authorize ('Update', $ post);
- Di middleware:
Route :: Put ('/posts/{post}', fungsi (post $ post) { // logik di sini })-> middleware ('boleh: kemas kini, pos');
- Dalam templat bilah:
@can ('update', $ post) <utton> edit </butang> @endcan
Kaedah ini mengekalkan pandangan dan pengawal anda bersih sambil menguatkuasakan peraturan akses yang konsisten.
Nota akhir
Menetapkan dasar mengambil beberapa langkah, tetapi apabila mereka berada di tempat, menguruskan kebenaran menjadi lebih mudah dan berskala. Ia sangat membantu apabila aplikasi anda berkembang dan anda mempunyai lebih banyak peranan dan syarat untuk mengendalikan.
Pastikan untuk menamakan kaedah dasar anda dengan jelas dan simpan logik yang berkaitan dikumpulkan bersama. Juga, jangan lupa untuk menguji peranan pengguna yang berbeza untuk memastikan peraturan anda berkelakuan seperti yang diharapkan.
Itu pada dasarnya. Tidak terlalu buruk apabila anda mendapat gantungnya.
Atas ialah kandungan terperinci Bagaimana saya menentukan dasar untuk model yang fasih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Artikel ini membawakan anda pengetahuan yang berkaitan tentang Laravel terutamanya memperkenalkan kepada anda pelaksanaan penguncian optimistik dalam model Laravel Eloquent. Rakan-rakan yang berminat boleh lihat di bawah.

Perkara utama strategi harga dan reka bentuk promosi dalam sistem jualan kilat PHP Dalam sistem jualan kilat, strategi harga dan reka bentuk promosi adalah bahagian yang sangat penting. Strategi harga yang berpatutan dan promosi yang direka dengan baik boleh menarik pengguna untuk menyertai aktiviti jualan kilat dan meningkatkan pengalaman pengguna dan keuntungan sistem. Perkara berikut akan memperkenalkan perkara utama strategi harga dan reka bentuk aktiviti promosi dalam sistem jualan kilat PHP secara terperinci, dan memberikan contoh kod khusus. 1. Perkara utama dalam reka bentuk strategi harga: Tentukan harga penanda aras: Dalam sistem jualan kilat, harga penanda aras merujuk kepada harga produk apabila ia biasanya dijual. wujud

Jadual Kandungan Prinsip Staking Astar Dapp Staking Hasil Pembongkaran Projek Airdrop Berpotensi: AlgemNeurolancheHealthreeAstar Degens DAOVeryLongSwap Staking Strategi & Operasi "AstarDapp Staking" telah dinaik taraf kepada versi V3 pada awal tahun ini, dan banyak pelarasan telah dibuat pada staking peraturan. Pada masa ini, kitaran pertaruhan pertama telah tamat, dan kitaran kecil "pengundian" kitaran pertaruhan kedua baru sahaja bermula. Untuk mendapatkan faedah "ganjaran tambahan", anda perlu memahami peringkat kritikal ini (dijangka akan berlangsung sehingga 26 Jun, berbaki kurang daripada 5 hari). Saya akan memecahkan pendapatan pertaruhan Astar secara terperinci,

Pembangunan Laravel: Bagaimana untuk menggunakan LaravelEloquent untuk melaksanakan persatuan polimorfik? Perkaitan polimorfik ialah ciri penting Laravel Eloquent, yang membolehkan satu model mewujudkan perhubungan dengan berbilang model yang berbeza. Dalam aplikasi praktikal, pemprosesan jenis data yang berbeza adalah agak mudah dan cekap, terutamanya dalam reka bentuk pangkalan data. Dalam artikel ini, kita akan membincangkan cara melaksanakan persatuan polimorfik menggunakan Laravel Eloquent. 1. Apakah persatuan polimorfik? Polimorfisme

EXE ke PHP: Strategi yang berkesan untuk mencapai pengembangan fungsi Dengan pembangunan Internet, semakin banyak aplikasi telah mula berhijrah ke web untuk mencapai akses pengguna yang lebih luas dan operasi yang lebih mudah. Dalam proses ini, permintaan untuk menukar fungsi yang asalnya dijalankan sebagai EXE (fail boleh laku) ke dalam skrip PHP juga meningkat secara beransur-ansur. Artikel ini akan membincangkan cara menukar EXE kepada PHP untuk mencapai pengembangan berfungsi, dan memberikan contoh kod khusus. Mengapa Menukar EXE kepada PHP Cross-Platformness: PHP ialah bahasa merentas platform

Menukar tatasusunan kepada objek menggunakan Eloquent dalam Laravel memerlukan langkah berikut: Cipta model Eloquent. Gunakan kaedah pilih Eloquent untuk mendapatkan hasil dan tukarkannya kepada tatasusunan. Gunakan ArrayObject untuk menukar tatasusunan kepada objek. Mendapat harta objek untuk mengakses nilai tatasusunan.

Analisis strategi cache MyBatis: amalan terbaik untuk cache tahap pertama dan cache tahap kedua Apabila membangun menggunakan MyBatis, kita sering perlu mempertimbangkan pilihan strategi cache. Cache dalam MyBatis terbahagi kepada dua jenis: cache peringkat pertama dan cache peringkat kedua. Cache peringkat pertama ialah cache peringkat SqlSession, manakala cache peringkat kedua ialah cache peringkat Mapper. Dalam aplikasi praktikal, penggunaan rasional kedua-dua cache ini adalah cara penting untuk meningkatkan prestasi sistem. Artikel ini akan menggunakan contoh kod khusus untuk menganalisis MyBatis

Strategi tetapan keselamatan nama pengguna PHPCMS didedahkan Dalam pembangunan laman web, keselamatan akaun pengguna sentiasa menjadi aspek yang amat dititikberatkan oleh pembangun. Tetapan keselamatan nama pengguna juga penting, kerana nama pengguna bukan sahaja bukti kelayakan log masuk pengguna, tetapi mungkin juga mendedahkan maklumat peribadi pengguna dan juga menyebabkan risiko keselamatan. Artikel ini akan mendedahkan strategi tetapan keselamatan nama pengguna dalam PHPCMS dan memberikan contoh kod khusus untuk dirujuk oleh pembangun. 1. Halang nama pengguna biasa Untuk meningkatkan keselamatan nama pengguna, pembangun harus menghalang pengguna daripada menggunakan secara berlebihan
