:::

8. 建立新增測驗的操作界面

一、新增測驗的路由(/exam/create)

  1. 一般「新增」功能,其路由名稱預設是/create(強烈建議,但非強制),搭配資源,其路由便是「/exam/create
  2. 也就是說,當瀏覽器網址輸入「http://網址/exam/create」時,系統便會新增測驗的界面
  3. 由於是從網址輸入,所以其動詞是get
  4. 此界面可放在名為/專案/resources/views/exam/create.blade.php的視圖中,利用view()來呼叫之
  5. 最後,將此路由命名為exam.create,以方便連結。所以,請開啟\專案\routes\web.php網站路由並編輯之:
    Route::get('/exam/create', function () {
        return view('exam.create');
    })->name('exam.create');
  6. 若日後由做了控制器,其動作便可直接改送到 ExamController@create 去操作該做的後續動作。
    Route::get('/exam/create', 'ExamController@create')->name('exam.create');

二、建立create的視圖

  1. 接著製作一個新的子視圖 /專案/resources/views/exam/create.blade.php
    @extends('layouts.app') 
    @section('content')
        <h1>{{ __('Create Exam') }}</h1>
    @endsection
  2. 如此 create.blade.php 就會繼承 layouts/app.blade.php 的樣板,並將設定值帶入使用。

  3. 由於有用到語系,所以,記得在\專案\resources\lang\zh-TW.json增加一組語系設定

    "Create Exam":"建立測驗"
  4. 請執行「http://localhost/exam/create」試試~

三、修改選單

  1. 修改 /專案/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
  2. 由於教師和管理員都有「建立測驗」的權限,與其判斷兩個角色,不如判斷一個權限來的簡單,所以,利用@can('建立測驗')@endcan來判斷目前登入者有無「建立測驗」的權限。

  3. 後台管理部份原本是利用@role('管理員')來判斷,但實際上,直接根據權限來判斷會更準確。

  4. 其中連結部份我們用 route('exam.create') 的寫法,直接呼叫路由名稱即可。

  5. 詳情請看:https://github.com/laravel-backpack/permissionmanager#using-blade-directives

到GitHub觀看此單元程式異動


:::

書籍目錄

展開 | 闔起

http%3A%2F%2Fcampus-xoops.tn.edu.tw%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbsn%3D37%26tbdsn%3D1163

計數器

今天: 1274127412741274
昨天: 4745474547454745
總計: 7711235771123577112357711235771123577112357711235