1. 關於 Laravel 1-1 為何需要框架? 1-2 快速安裝開發環境及開發工具 1-2-1 以XAMPP建立運作環境 1-2-2 Visual Studio Code文字編輯器 1-2-3 安裝 Composer 1-2-4 安裝 GitHub Desktop for Windows 1-2-5 [建議]瀏覽器附加元件 1-2-6 [參考]申請mailtrap帳號 1-2-7 [參考]用Homestead建構開發環境 2. 建立專案 2-1 將專案加入本地端的 git 2-2 將專案放上GitHub 2-3 設定專案環境 2-4 Laravel運作週期 3. 建立使用者認證 3-1 佈署到主機上 3-2 新增語系 3-3 開啟網站並登入 4. 了解路由的運作 4-1 製作系統主樣板 4-2 製作中文語系檔 4-3 修改首頁畫面 4-4 Blade 樣板語法 5. 安裝後台及讀寫機制 5-1 安裝後台的使用者角色管理 5-2 讓閒雜人等不能進入後台 5-3 安裝 laravel-debugbar 方便除錯 6. 建立相關資料表及模型 6-1 編輯並執行測驗(exam)的 migrate 檔案 7. 開始定義系統各項功能 7-1 還沒有控制器的路由寫法 7-2 有控制器的路由寫法 8. 建立新增測驗的操作界面 8-1 安裝marvinlabs/laravel-html-bootstrap-4套件 8-2 建立發布測驗的表單 9. 建立Exam的控制器controller 9-1 修改路由改用控制器 9-2 在視圖中取得使用者編號 9-3 將資料寫進資料庫 9-4 用 fillable 批量賦值寫入 10. 表單驗證及錯誤處理 10-1 建立Request來統一驗證 11. 讀出所有測驗 11-1 讀出時加入各種條件 11-2 加入分頁 12. 讀出單一測驗 12-1 路由模型綁定 12-2 建立並執行題目的Model 及 migrate 文件 12-3 新增題目編輯表單 12-4 儲存題目 12-5 列出題目 12-6 匯入題目 12-7 利用Model查詢資料的方法 12-8 測驗與題目的關聯 13. 利用模型工廠產生隨機題目 13-1 建立Seeder快速填充資料 14. 修改測驗 14-1 更新測驗 14-2 修改題目 14-3 更新題目 15. 刪除題目 15-1 刪除測驗 15-2 加入刪除確認 16. 建立並執行考試的Model 及 migrate 文件 16-1 設定考試與測驗、考生的關聯 16-2 產生考試界面 16-3 儲存並計分 16-4 產生考試結果 17. 安裝設定新北市OpenID登入 17-1 使用新北市OpenID登入 17-2 異動資料表 17-3 修改考試的儲存動作 18. 網站的關閉與啟動 18-1 使用路由前置字串 18-2 使用資源路由 19. 重建由GitHub下載的Laravel專案
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
1. 關於 Laravel 1-1 為何需要框架? 1-2 快速安裝開發環境及開發工具 1-2-1 以XAMPP建立運作環境 1-2-2 Visual Studio Code文字編輯器 1-2-3 安裝 Composer 1-2-4 安裝 GitHub Desktop for Windows 1-2-5 [建議]瀏覽器附加元件 1-2-6 [參考]申請mailtrap帳號 1-2-7 [參考]用Homestead建構開發環境 2. 建立專案 2-1 將專案加入本地端的 git 2-2 將專案放上GitHub 2-3 設定專案環境 2-4 Laravel運作週期 3. 建立使用者認證 3-1 佈署到主機上 3-2 新增語系 3-3 開啟網站並登入 4. 了解路由的運作 4-1 製作系統主樣板 4-2 製作中文語系檔 4-3 修改首頁畫面 4-4 Blade 樣板語法 5. 安裝後台及讀寫機制 5-1 安裝後台的使用者角色管理 5-2 讓閒雜人等不能進入後台 5-3 安裝 laravel-debugbar 方便除錯 6. 建立相關資料表及模型 6-1 編輯並執行測驗(exam)的 migrate 檔案 7. 開始定義系統各項功能 7-1 還沒有控制器的路由寫法 7-2 有控制器的路由寫法 8. 建立新增測驗的操作界面 8-1 安裝marvinlabs/laravel-html-bootstrap-4套件 8-2 建立發布測驗的表單 9. 建立Exam的控制器controller 9-1 修改路由改用控制器 9-2 在視圖中取得使用者編號 9-3 將資料寫進資料庫 9-4 用 fillable 批量賦值寫入 10. 表單驗證及錯誤處理 10-1 建立Request來統一驗證 11. 讀出所有測驗 11-1 讀出時加入各種條件 11-2 加入分頁 12. 讀出單一測驗 12-1 路由模型綁定 12-2 建立並執行題目的Model 及 migrate 文件 12-3 新增題目編輯表單 12-4 儲存題目 12-5 列出題目 12-6 匯入題目 12-7 利用Model查詢資料的方法 12-8 測驗與題目的關聯 13. 利用模型工廠產生隨機題目 13-1 建立Seeder快速填充資料 14. 修改測驗 14-1 更新測驗 14-2 修改題目 14-3 更新題目 15. 刪除題目 15-1 刪除測驗 15-2 加入刪除確認 16. 建立並執行考試的Model 及 migrate 文件 16-1 設定考試與測驗、考生的關聯 16-2 產生考試界面 16-3 儲存並計分 16-4 產生考試結果 17. 安裝設定新北市OpenID登入 17-1 使用新北市OpenID登入 17-2 異動資料表 17-3 修改考試的儲存動作 18. 網站的關閉與啟動 18-1 使用路由前置字串 18-2 使用資源路由 19. 重建由GitHub下載的Laravel專案