:::
5-1 安裝後台的使用者角色管理
一、安裝backpack/permissionmanage
- 前面的基礎都是為了建立使用者的角色管理機制
- 官網:https://github.com/Laravel-Backpack/PermissionManager
- 安裝backpack/permissionmanager:
composer require backpack/permissionmanager -
建立設定檔:
php artisan vendor:publish --provider="Backpack\PermissionManager\PermissionManagerServiceProvider" -
建立資料表:
php artisan migrate -
請修改
/專案/app/User.php加上以下程式,如此,權限機制才能正常使用:<?php namespace App; use Backpack\CRUD\CrudTrait; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Spatie\Permission\Traits\HasRoles; class User extends Authenticatable { use Notifiable; use CrudTrait; use HasRoles; /** * The attributes that are mass assignable. * * @var array */ -
接著修改
/專案/config/auth.php,把原本的使用者資料模型換成此套件的使用者資料模型'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => Backpack\Base\app\Models\BackpackUser::class, ], // 'users' => [ // 'driver' => 'database', // 'table' => 'users', // ], ], -
修改
/專案/resources/views/vendor/backpack/base/inc/sidebar_content.blade.php加入權限管理選項<!-- Users, Roles Permissions --> <li class="treeview"> <a href="#"><i class="fa fa-group"></i> <span>使用者角色權限管理</span> <i class="fa fa-angle-left pull-right"></i></a> <ul class="treeview-menu"> <li><a href="{{ url(config('backpack.base.route_prefix', 'admin') . '/user') }}"><i class="fa fa-user"></i> <span>使用者</span></a></li> <li><a href="{{ url(config('backpack.base.route_prefix', 'admin') . '/role') }}"><i class="fa fa-group"></i> <span>角色</span></a></li> <li><a href="{{ url(config('backpack.base.route_prefix', 'admin') . '/permission') }}"><i class="fa fa-key"></i> <span>權限</span></a></li> </ul> </li> -
最後直接下載中文語系解壓縮到
\專案\resources\lang\vendor\backpack中,然後解壓縮覆蓋!這樣日後若升級套件,加入的中文語系才不會又消失。
二、建立身份及權限
- 「角色」部份可以先新增「管理員」、「教師」及「學生」三個角色
- 「權限」部份可以先新增「後台管理」、「建立測驗」及「進行測驗」
- 「管理員」分別綁定「後台管理」及「建立測驗」兩個權限
- 「教師」綁定「建立測驗」權限
- 「學生」綁定「進行測驗」權限
- 記得先將自己的帳號加入「管理員」(密碼有要改變才需要填,否則留空即可),另外記得到「使用者」建立一個老師及學生帳號以便測試。

三、修改選單
-
為了方便連結,我們可以修改
\專案\resources\views\layouts\nav.blade.php的樣板檔,加入自製選項,由於只開放管理員進到後台,所以,利用@role('管理員')及@endrole來進行身份判斷。:...略... @else @section('my_menu') @role('管理員') <li><a class="nav-link" href="/admin">{{ __('Admin') }}</a></li> @endrole @show ...略... -
然後,編輯一下
\專案\resources\lang\zh-TW.json語系檔{ "Login": "登入", //....略... "Admin":"後台管理" } -
如此,就有方便的連結可以按了。
-
詳情可見:https://github.com/laravel-backpack/permissionmanager#using-blade-directives
5. 安裝後台及讀寫機制
