Laravel 권한 제어 게이트 정책
이 글은 주로 Laravel 권한 제어 Gate 정책을 소개하는데, 이는 특정 참고 가치가 있습니다. 이제는 모든 사람과 공유합니다. 필요한 친구들이 참고할 수 있습니다.
권한에 대하여
본질적으로는 실행 가능한 논리에 대한 설명입니다. 단위 생산 개시 여부를 결정합니다.
정의 사용자 인스턴스 또는 고유 식별 매개변수와 이에 연결된 사용 리소스가 있어야 합니다. 일반적으로 클로저나 함수 또는 메서드를 사용하여 권한 논리 단위 핸들, 매개변수 권한 작업 개체 및 사용자 정보를 호출합니다.
Origin가장 기본적인 권한 제어, 삼항 연산자? :. 분명히 조건부 판단을 한 다음 해당 실행 논리로 점프합니다.
Laravel의 아이디어는 실행 로직(생산 코드)과 승인(조건부 판단 로직)을 분리하는 것입니다. 조건 생성에 중점을 두고 일반적으로 권한 부여 논리를 강화합니다(복잡한 권한 부여에 매우 유용함). 가정: 모든 코드는 서비스 등록이 완료된 후 시작됩니다. 그러면 다음과 같은 코드가 등록됩니다. 그 목적은 진정으로 판단을 승인하는 논리적 본체를 찾는 것입니다.
Gate::define('update articles', 'ArticlePolicy@update')
첫 번째 매개변수는 분명히 인증 식별자(호출에 사용되는 핸들 매개변수)이고, 두 번째 매개변수는 인증된 논리적 실행 본문입니다.
AuthServiceProvider
의 boot
메소드에서 인증을 정의합니다.
AuthServiceProvider
的 boot
方法里定义授权
Gate::define('update articles', function ($user, $article) { return $user->id == $article->user_id; }); Gate::define('update articles', 'ArticlePolicy@edit');
<?php namespace App\Policies; use App\User; use App\Models\Article; class ArticlePolicy { public function update(User $user, Article $article) { return $user->id == $article->author_id; } }
laravel授权使用
Gate 门面:
Gate::allows('update articles', $article)
和Gate::denies('update articles', $article)
。Controller 引入了
trait AuthorizesRequests
$this->authorize('update articles', $article)
。Blade 模板:
@can('update articles', $article)
和@cannot('update articles', $article)
指令。User Model 实例:
$user->can('update articles', $article)
和$user->cannot('update articles', $article)
。
Laravel Policy
为了方便地定义和使用授权,Laravel 在Gate的基础上引入了 Policy。policy内部的每一个方法,都会被用gate::define方法的描述注册。所以这就是为什么使用了策略类注册之后,即便没有用Gate门面定义授权逻辑,在控制器内仍然可以使用Gate::allow('策略类方法')的形式来进行授权判断 。
在 AuthServiceProvider
的 policies
数组属性里先定义授权映射关系
/** * The policy mappings for the application. * * @var array */ protected $policies = [ Article::class => ArticlePolicy::class, ];
<?php namespace App\Policies; use App\User; use App\Models\Article; use Illuminate\Auth\Access\HandlesAuthorization; class ArticlePolicy { use HandlesAuthorization; public function create(User $user) { return true; } public function delete(User $user, Article $article) { return $user->id == $article->author_id; } public function before($user, $ability) { if($user->isSuperAdmin()){ return true; } } }
注意:
Policy 只是在普通 PHP 类基础上添加了一个 HandlesAuthorization
laravel 인증 사용
- Gate 외관:
Gate::allows('update Articles', $article)
및Gate::denies('update Articles', $article)
. -
컨트롤러는 특성 AuthorizesRequests🎜🎜
$this->authorize('update Articles', $article)
. 🎜 - 🎜Blade 템플릿:
@can('update Articles', $article)
및@cannot('update Articles', $article)
지시어 . 🎜 - 🎜사용자 모델 인스턴스:
$user->can('update Articles', $article)
및$user->cannot('update Articles' , $article)
. 🎜
AuthServiceProvider
🎜rrreeerrreee🎜참고의 policies
배열 속성에서 인증 매핑 관계를 정의하세요. 🎜🎜Policy는 일반 정책만을 기반으로 합니다. PHP 클래스 HandlesAuthorization
특성을 추가했습니다. 🎜🎜정책에서는 모든 메소드가 실행되기 전에 호출되며 관리자 인증 로직을 처리하는 데 자주 사용됩니다. 🎜🎜🎜관련 권장 사항: 🎜🎜🎜gulp를 사용하여 Laravel에서 프런트 엔드 리소스를 구축하는 방법🎜🎜위 내용은 Laravel 권한 제어 게이트 정책의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Laravel 이메일 전송이 실패 할 때 반환 코드를 얻는 방법. Laravel을 사용하여 응용 프로그램을 개발할 때 종종 확인 코드를 보내야하는 상황이 발생합니다. 그리고 실제로 ...

로그인 단계 및 암호 복구 프로세스를 포함하여 참깨 오픈 exchange 웹 버전의 로그인 작업에 대한 자세한 소개는 로그인 실패, 페이지를 열 수 없으며 플랫폼에 부드럽게 로그인 할 수없는 일반적인 문제에 대한 솔루션을 제공합니다.

cryptocurrency 여행을 시작하려면 Gate.io 앱을 다운로드해야합니까? 이 안내서는 iOS, Android 및 Windows 장치의 최신 버전 다운로드 단계를 자세히 설명합니다. 공식 웹 사이트를 방문하고 다운로드 링크를 찾은 다음 장치를 기반으로 적절한 옵션을 선택하십시오. iOS의 경우 App Store로 직접 이동하는 반면 Android 및 Windows 사용자는 수동 설치를 위해 APK 또는 Installer를 다운로드합니다. 설치되면 앱을 시작하고 계정을 설정하여 Cryptocurrency의 세계로 들어갈 수 있습니다.

이 기사는 2025 년 Bitcoin의 역사 가격의 최신 버전에 대한 자세한 검토를 제공하고 2009 년 출생 이후 Bitcoin의 가격 추세를 자세히 설명했습니다. 비트 코인 프라이스 (Bitcoin Price)는 초기 모호함에서 글로벌 디지털 자산에 이르기까지 많은 급증을 경험했으며 2013 년 "피자 이벤트"와 같은 주요 이정표, 2017 년에 20,000 달러의 돌파구, 후속 시장 조정과 같은 주요 이정표를 검토 할 것입니다. 우리는 기술 개발, 규제 정책, 시장 감정 및 거시 경제 환경을 포함하여 비트 코인 가격 변동에 영향을 미치는 주요 요인을 분석하고 미래의 개발 동향에 대한 전망을 만들어 독자에게 비트 코인 가격의 변화를 이해하고 투자자가 위험 평가를 더 잘 수행 할 수 있도록 포괄적 인 참조를 제공합니다.

laravel 일정 작업 실행 비 응답 문제 해결 Laravel의 일정 작업 일정을 사용할 때 많은 개발자 가이 문제에 직면합니다 : 스케줄 : 실행 ...

Laravel의 이메일을 처리하지 않는 방법은 LaRavel을 사용하는 것입니다.

Sesame Open Exchange 앱의 공식 다운로드 단계는 Android 및 iOS 시스템 다운로드 프로세스뿐만 아니라 일반적인 문제 솔루션을 포함하여 안전하고 빠르게 다운로드하고 편리한 암호 화폐 거래를 가능하게합니다.

이 기사는 투자자가 실시간 가격, 가격 차트, 거래량, 변동, 시장 깊이 및 뉴스 정보와 같은 주요 정보를 투자자에게 제공하여 투자자가 정보에 근거한 결정을 내릴 수있는 무료 디지털 자산 견적 소프트웨어 앱 및 웹 사이트를 소개합니다. 유료 소프트웨어와 비교할 때 Free Software는 무료 비용, 풍부한 기능 및 쉽게 작동하는 이점이 있습니다. 이 기사는 또한 사용자에게 올바른 시장 소프트웨어를 선택하는 방법을 안내하며, 사용자에게 데이터 소스, 정보 정확도에주의를 기울이고 과도한 의존성을 피하기 때문에 궁극적으로 투자자가 디지털 자산 시장의 트렌드를 더 잘 파악할 수 있도록 도와줍니다. 무료 시장 소프트웨어를 효율적으로 사용하는 방법을 알고 싶으십니까? 신속하게 전체 텍스트를 읽으십시오!
