8.
建立新增測驗的操作界面
一、新增測驗的路由(/exam/create)
- 一般「新增」功能,其路由名稱預設是
/create
(強烈建議,但非強制),搭配資源,其路由便是「/exam/create
」
- 也就是說,當瀏覽器網址輸入「
http://網址/exam/create
」時,系統便會新增測驗的界面
- 由於是從網址輸入,所以其動詞是
get
- 此界面可放在名為
/專案/resources/views/exam/create.blade.php
的視圖中,利用view()
來呼叫之
- 最後,將此路由命名為
exam.create
,以方便連結。所以,請開啟\專案\routes\web.php
網站路由並編輯之:
Route::get('/exam/create', function () {
return view('exam.create');
})->name('exam.create');
- 若日後由做了控制器,其動作便可直接改送到
ExamController@create
去操作該做的後續動作。
Route::get('/exam/create', 'ExamController@create')->name('exam.create');
二、建立create的視圖
- 接著製作一個新的子視圖
/專案/resources/views/exam/create.blade.php
@extends('layouts.app')
@section('content')
<h1>{{ __('Create Exam') }}</h1>
@endsection
-
如此 create.blade.php
就會繼承 layouts/app.blade.php
的樣板,並將設定值帶入使用。
-
由於有用到語系,所以,記得在\專案\resources\lang\zh-TW.json
增加一組語系設定
"Create Exam":"建立測驗"
-
請執行「http://localhost/exam/create」試試~
三、修改選單
- 修改
/專案/resources/views/layouts/nav.blade.php
把建立測驗的選項加入:
@section('my_menu')
@can('後台管理')
<li><a class="nav-link" href="/admin">{{ __('Admin') }}</a></li>
@endcan
@can('建立測驗')
<li><a class="nav-link" href="{{ route('exam.create') }}">{{ __('Create Exam') }}</a></li>
@endcan
@show
-
由於教師和管理員都有「建立測驗」的權限,與其判斷兩個角色,不如判斷一個權限來的簡單,所以,利用@can('建立測驗')
及@endcan
來判斷目前登入者有無「建立測驗」的權限。
-
後台管理部份原本是利用@role('管理員')
來判斷,但實際上,直接根據權限來判斷會更準確。
-
其中連結部份我們用 route('exam.create')
的寫法,直接呼叫路由名稱即可。
-
詳情請看:https://github.com/laravel-backpack/permissionmanager#using-blade-directives