日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

laravel authorize(授权)

發布時間:2025/7/14 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 laravel authorize(授权) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.方法一? 直接在AuthServiceProvider 中定義閉包,比較靈活

namespace App\Providers; ... class AuthServiceProvider extends ServiceProvider { ...public function boot(GateContract $gate){parent::registerPolicies($gate);//使用閉包定義授權能力$gate->define('update-post', function($user, $post){return $user->id == $post->user_id;});//使用類函數定義$gate->define('update-post', 'PostPolicy@update'); } }

?

namespace App\Http\Controllers; ... //在控制器中檢驗授權 class PostController extends Controller {public function show($id){//auth()->logout();auth()->loginUsingId(3);$post = Post::findOrFail($id);// if(Gate::denies('show-post', $post)){// abort(403, 'sorry, not sorry!');// }//$this->authorize('update-post', $post);return view('posts.show', compact('post'));} } //在view中檢驗授權,如果通過才顯示update鏈接
<h2>{{$post->title}}</h2> @can('update-post', $post) <a href=#>update</a> @endcan

2.方法二 ,注冊策略類來實現

建立policy

php artisan make:policy PostPolicy

?注冊? 模型 =>策略

namespace App\Providers; ... class AuthServiceProvider extends ServiceProvider {protected $policies = [// 'App\Model' => 'App\Policies\ModelPolicy',\App\Post::class => \App\Policies\PostPolicy::class,];

定義類策略函數

namespace App\Policies;use App\User; use App\Post;class PostPolicy { //可以建立多個檢驗方法對應不同場景public function update(User $user, Post $post){return $user->id == $post->user_id;} }

使用方法同上。

轉載于:https://www.cnblogs.com/fenle/p/4851149.html

總結

以上是生活随笔為你收集整理的laravel authorize(授权)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。