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專案
6.
建立相關資料表及模型
一、建立 Eloquent 模型
一個Eloquent 模型對應一張表,model (模型)就是用來操作資料庫資料 用的。
migration 可視為建立SQL資料表的方法(有點類似xxx.sql的作用),可分次建立,亦可回覆上一動。
先建立 Eloquent 模型,以便將一個資料表變成一個物件來操作,並且順便產生 migration 檔案
php artisan make:model Exam --migration
模型的第一個字請用大寫 (大駝峰命名法),單複數不拘,但似乎使用單數的人居多。
若 migration 檔案已經存在了,則用下面任一語法均可
php artisan make:model Exam
php artisan make:model Exam --no-migration
最後會產生 /專案/app/Exam.php
模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Exam extends Model
{
//
}
還有 /專案/database/migrations/日期_create_exams_table.php
(如:2018_07_01_161014_create_exams_table.php)
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateExamsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('exams', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('exams');
}
}
二、編輯 Eloquent 模型
如果是自動建立的 migration,其實下面動作不需要做 。
Eloquent 會假設類別的小寫、底線、複數 形式就是資料表的名稱 ,例如類別叫做Exam
,其內定資料表名稱辨識exams
,所以資料表名稱若不符合此內規,則可自行定義一個 $table
屬性來告知正確的資料表名稱。
Eloquent 也會假設每個資料表有一個主鍵欄位叫做 id。所以,若您的主鍵不是叫做id,那麼你也可以定義一個 $primaryKey
屬性來覆寫這個慣例。(/專案/app/Exam.php
)
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Exam extends Model
{
//若符合慣例可以不用設定這些
protected $table = 'exams';
protected $primaryKey = 'id';
}
三、Model 慣例
model 預設在 /專案/app
底下,若要放在/專案/app
下的子目錄,記得也要修改 namespace
一個 Model 對應一個資料表
資料表名稱為英文 複數 全小寫 ,單字間用蛇底式命名法( snake case ),例如: first_name 、last_name、snake_case
Model 名稱為單數,單字間用大駝峰命名法 (upper camel case) ,例如:FirstName、LastName、CamelCase
四、關於Eloquent 用法
方法詳見:https://laravel-china.org/docs/laravel/5.6/eloquent/1403
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專案