În timp ce Gates sunt ideale pentru acțiuni generale (de exemplu accesul în panoul administrativ), Policies organizează logica de autorizare în jurul unui model Eloquent specific (de exemplu: cine are voie să editeze sau să șteargă o anumită postare).
Controllerele pot verifica autorizarea printr-un simplu apel: $this->authorize('update', $post), care aruncă automat un 403 Forbidden dacă utilizatorul nu îndeplinește condițiile din politică.
Exemplu: Politică PostPolicy și verificare în Controller
// app/Policies/PostPolicy.php
namespace App\Policies;
use App\Models\Post;
use App\Models\User;
class PostPolicy
{
// Doar autorul postării sau un administrator are permisiunea de editare:
public function update(User $user, Post $post): bool
{
return $user->id === $post->user_id || $user->is_admin;
}
}
// În PostController:
public function edit(Post $post)
{
$this->authorize('update', $post); // Verificare automată!
return view('posts.edit', compact('post'));
}
Întrebări & Exemple de Cod:
Politici de Autorizare (Policies) în LaravelAi o nelămurire despre utilizarea comenzii
Politici de Autorizare (Policies) în Laravelsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.