? ?? ????? Laravel5 ?? ?? ?? ??? ?????. ???? ? ??? ??? ??? ??? ??? ??? ????.
?? ??? ?? ??
??? laravel? ???? ???? ?????, ????? ?? ??? ?????. ?? ??? ????? ? ?? ??? ??? ? ???? ????. ?? ??? ?? ????. ?, ???? ????? ??? ???? ????. Laravel?? ?? ???? ?? Auth? ?? ?????. ?? ??? ?? ?? ????.
?? ??? ????? ?? ??? ??? ? ?? ??? ??? ???? ?????. ???? ? ?? ??? ????. ??? ????? ?? ??? ???? ? ?? ???? ?? ??, ???? ????? ?? ? ?? ???? ?? ??? ??? ?? ????. ? ??, ???? ??? ? ??? ??? ??? ??? ????. ???? ????, ???? ??? ?????. ? ?? ??? ??? ?????. ??? ?? ???? ?? ??? ?? ? ? ?? ??? ???? ???? ????. ?? ? ?? ???? ??? ??? ??? ?????.
?? ??? ???? ?? ??? ??? ?? ??? ??? ???? ??? ???? ???. ?? ?? ??? ??? ?? ????. East-West ????? ??? ?? ?? ??? ?????. ?, ?? ??? ?? ?? ??? ?????.
??? ???? ??? ??? ????. ??, ?? ?? ??? ??? ? ????. ??? ?? ? ?? ?? ??? ???? ???? ??????. 1. ???? ???? ?? ???????? ???? ????. 2. ?? ??? ?? ? ??? ?? ??? ??? ??? ?????. ??? ???? ?? ?? ?? ?? ???? ????.
????? ??? ???? ??? ?????.
??? ??
?? ???? ?????
???? ?? ??? ??? ??? ? ?? ??? ??? ?? ?????. ?? ?? ??? ??? ?? ???? ?? ????? ???? ? ???? ? ??? ???? ? ??? ??? ??? ??? ??? ???.Route::post('/admin/validate', ['uses' => 'AdminController@postValidate', 'permissions'=>['admin.validate', 'admin.index']]);
???? admin.validate? ?? ??? ?????. ?? ??? ??? ???? ? ????. admin? ??????? 2?? ??? [admin]? ?????. ] => ['validate', 'index']; ????? 1??? ?? 2?? ??? ???? ?? ??? ???? ?? ??? ??? ?? ?????. ?, ? 2?? ??? ??? ? ? ?? ?? ??? ??? ????.
???? ???
?, ?? ????? ???? ? ????? ??? ?? ??? ???????
??? ?? ??? ?? getPermission ??? $request->route()->getAction()?? ? ??? ?? ??? ??? ?? ?? ???? Route.php? ??? ??? ??? ????.<?php namespace App\Http\Middleware; use Illuminate\Support\Facades\Session; use Closure; class Permission { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $permits = $this->getPermission($request); $admin = \App\Http\Middleware\Authenticate::getAuthUser(); // 只要有一個有權限,就可以進入這個請求 foreach ($permits as $permit) { if ($permit == '*') { return $next($request); } if ($admin->hasPermission($permit)) { return $next($request); } } echo "沒有權限,請聯系管理員";exit; } // 獲取當前路由需要的權限 public function getPermission($request) { $actions = $request->route()->getAction(); if (empty($actions['permissions'])) { echo "路由沒有設置權限";exit; } return $actions['permissions']; } }
?? ????? ??? ????.
???? ?? ??? ?????.admin?>hasPermission(admin?>hasPermission(permit);
?? ??
???????? 2?? ??? json?? ????, laravel? Attribute get ? set ???? ???? ??????? ??? json ??? ??????. ???? ??. ???? hasPermission? ?? ?? ? ????. in_array? ?? ???? ??? ????.<?php namespace App\Models\Admin; use App\Models\Model as BaseModel; class Admin extends BaseModel { protected $table = 'admin'; // 判斷是否有某個權限 public function hasPermission($permission) { $permission_db = $this->permissions; if(in_array($permission, $permission_db)) { return true; } return false; } // permission 是一個二維數組 public function getPermissionsAttribute($value) { if (empty($value)) { return []; } $data = json_decode($value, true); $ret = []; foreach ($data as $key => $value) { $ret[] = $key; foreach ($value as $value2) { $ret[] = "{$key}.{$value2}"; } } return array_unique($ret); } // 全局設置permission public function setPermissionsAttribute($value) { $ret = []; foreach ($value as $item) { $keys = explode('.', $item); if (count($keys) != 2) { continue; } $ret[$keys[0]][] = $keys[1]; } $this->attributes['permissions'] = json_encode($ret); } }
?? ??
? ?? ??? ??? ?????. ?? ?? ???? ??? ??? ?? ??? ?? ????? ???? ?? ?? ???
? ???? ???? ?? ? ? ??? ???? ???.@if ($admin->hasPermission('admin.index')) @endif
??
?? ??? ??? ???? ?? ?? ????? ??? ???? ????? ?? ??? ??? ? ??? ?????. ?? ???? ? ?? ?? ?? ? ????.
?? ?? ??? ???? ??? ? ???? hasPermission? nosql?? pg? ???? ??? ?? DB ??? ??? ??? ????. ?? ?? ?? ????
? ?? Laravel ?????? ???? ?? ?? ??? PHP ???? ??? ??? ??? ????.
Laravel5? ?? ?? ??? ?? ?? ?? ??? ??? PHP ??? ????? ??????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)