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專案
16-1
設定考試與測驗、考生的關聯
一、設定Test的模型及關聯
首先進入某個考試時,要能夠判斷學生身份,並且讓原本的題目列表隨機列出10筆,並可送出儲存。
在這之前,我們先來設定一下Test的模型及關聯
從考試(test)的角度來看,每個考試都有一個所屬(belongsTo)的測驗(exam),所以,開啟題目的模型/專案/app/Test.php
,加入對測驗的 belongsTo
關聯:
class Test extends Model
{
protected $fillable = [
'content', 'user_id', 'exam_id', 'score',
];
public function exam()
{
return $this->belongsTo('App\Exam');
}
public function user()
{
return $this->belongsTo('App\User');
}
}
此外,一個考試,也一定會有一個考生,所以,我們也順便加入使用者的關聯。
設好後,日後只要取得$test
資料,就可以順便帶出$test->exam
測驗資料,以及$test->user
使用者資料
另外,批次賦值$fillable
也順便一下,這些通常都是必做的。
二、設定測驗對考試的關聯
從測驗(exam)的角度來看,一個測驗可能會有多(hasMany)考試(test),所以,開啟使用者的模型 /專案/app/Exam.php
,加入對題目的 hasMany
關聯:
class Exam extends Model
{
protected $fillable = [
'title', 'user_id', 'enable',
];
protected $casts = [
'enable' => 'boolean',
];
public function topics()
{
return $this->hasMany('App\Topic');
}
public function tests()
{
return $this->hasMany('App\Test');
}
}
設定好關聯後,在取得 $exam
內容時,就會自動加入 $exam->test
資料陣列,可以輕鬆的取得測試的相關資料。如果有老師想看這個測驗底下有多少考試,就可以很方便的讀出。
完整關聯請參考:https://laravel-china.org/docs/laravel/5.6/eloquent-relationships/1404
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專案