1. 關於 Laravel 1-1 為何需要框架? 1-2 快速安裝開發環境及開發工具 1-2-1 以Laragon建立運作環境 1-2-2 修改資料庫密碼並建立myshop資料庫 1-2-3 Visual Studio Code文字編輯器 1-2-4 安裝 Composer 1-2-5 [參考]註冊 GitHub 1-2-6 [參考]瀏覽器附加元件 1-2-7 [參考]申請mailtrap帳號 1-2-8 [參考]用Homestead建構開發環境 2. 專案需求分析 2-1 建立專案 2-2 [參考]將專案加入本地端的 git 2-3 [參考]將專案放上GitHub 2-4 設定專案環境 2-5 Laravel運作週期 3. 建立使用者認證 3-1 新增中文語系 4. 了解路由 Router 及視圖 View 4-1 製作系統主樣板 4-2 為樣板製作中文語系檔 4-3 修改首頁畫面 4-4 Blade 樣板語法(自訂導覽列選項) 5. 安裝 laravel-admin 後台 5-1 修改後台設定檔 5-2 將後台選單中文化的方法 6. 修改使用者資料表 6-1 修改註冊頁面 6-2 讓新增的欄位可以寫入資料庫 6-3 剛剛我們做了什麼? 7. 開始定義系統各項功能 7-1 還沒有控制器的路由寫法 7-2 有控制器的路由寫法 8. 在後台新增買家管理 8-1 建立管理買家的後台控制器 8-2 新增管理買家的路由 8-3 新增選單 8-4 調整可修改的項目 9. 建立商品模型 9-1 編輯並執行商品(Product)的 migrate 檔案 9-2 建立後台商品管理頁面 9-3 中文化商品管理界面 9-4 後台新增商品頁面 9-5 後台的驗證表單資料 9-6 後台加入所見即所得編輯器 9-7 後台修改商品 10. 建立前台顯示商品頁面 10-1 建立前台商品控制器 10-2 修改路由讓首頁呈現商品列表 10-3 修改控制器以執行取得資料動作 10-4 修改模型以正確顯示圖片 10-5 修改視圖以顯示商品列表 11. 建立商品測試資料 11-1 讓系統也可以顯示測試圖片 11-2 建立Seeder快速填充資料 12. 建立商品詳情頁的路由 12-1 建立商品詳情頁的控制器 12-2 路由模型綁定 12-3 建立商品詳情頁的視圖 13. 一般的異常處理 13-1 優雅的異常處理 14. 關於購物車 14-1 建立購物車的模型 14-2 設定商品、購物車與買家的關聯 14-3 建立新增至購物車的路由 14-4 建立購物車控制器 15. 使用 Laravel Mix 來管理前端資源 15-1 修改前台視圖 15-2 安裝 SweetAlert 15-3 實現加入購物車按鈕 15-4 將購物項目寫入資料庫 15-5 用 fillable 批量賦值寫入 15-6 建立Request來做資料整理及檢查 15-7 利用模型觀察器建立使用者資料 15-8 根據不同情況來進行新增品項或累加品項 16. 查看購物車商品 16-1 微調購物車的傳送方式 16-2 刪除某個購物品項 16-3 調整商品數量 17. 關於訂單 17-1 建立訂單及品項的模型及控制器 17-2 設定訂單及訂單項目的關聯 17-3 加入送出訂單按鈕 17-4 我的訂單列表 17-5 後台訂單管理 17-6 中文化訂單管理界面 18. 重建由GitHub下載的Laravel專案 18-1 佈署到主機上
14-1
建立購物車的模型
接著建立 Eloquent 模型,以便將一個資料表變成一個物件來操作,並且順便產生 migration 檔案以及完整控制器
php artisan make:model Cart -mr
再複習一下模型的第一個字請用大寫 (大駝峰命名法),單複數不拘,但似乎使用單數的人居多。
Eloquent 會假設類別的小寫、底線、複數 形式就是資料表的名稱 ,例如類別叫做Cart
,其內定資料表名稱便是carts
。
換言之,資料表名稱為英文 複數 全小寫 ,單字間用蛇底式命名法( snake case ),例如: first_name 、last_name、snake_case
Model 名稱為單數,單字間用大駝峰命名法 (upper camel case) ,例如:FirstName、LastName、CamelCase
最後會產生 \專案\app\Cart.php
模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Cart extends Model
{
//
}
還有\專案\database\migrations\日期_create_carts_table.php
(如:database\migrations\2019_05_28_212954_create_carts_table.php),我們順道編輯一下其內容:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateCartsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('carts', function (Blueprint $table) {
$table->increments('id');
$table->unsignedBigInteger('user_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->unsignedInteger('product_id');
$table->foreign('product_id')->references('id')->on('products')->onDelete('cascade');
$table->unsignedInteger('amount');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('carts');
}
}
這裡有個坑要注意一下,由於Laravel5.8預設會將日期_create_users_table.php
中的id
自動新增流水號設為bigIncrements()
,以就是以大型整數為預設類型,因此,在設定外鍵時,也必須指定相符類型的整數才行,否則會一直出現外鍵設定錯誤。如:
$table->unsignedBigInteger('user_id');
此外,若是要建立 foreign key
必須在還沒有資料的時候就先建立,日後若已經有資料,要再建立 foreign key
就會比較麻煩。(因為必須資料能對應的起來才可以建立)
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
foreign('user_id')
用來指定哪個欄位是外鍵,然後用references('id')->on('users')
來設定管連到哪個資料表的哪個欄位,後的onDelete('cascade')
是一個約束條件,也就是當該用戶被刪除時,連同購物車的項目也一併刪除之意。 詳情:https://learnku.com/docs/laravel/5.8/migrations/3928#foreign-key-constraints
最後執行資料庫遷移即可建出新的carts資料表
php artisan migrate
1. 關於 Laravel 1-1 為何需要框架? 1-2 快速安裝開發環境及開發工具 1-2-1 以Laragon建立運作環境 1-2-2 修改資料庫密碼並建立myshop資料庫 1-2-3 Visual Studio Code文字編輯器 1-2-4 安裝 Composer 1-2-5 [參考]註冊 GitHub 1-2-6 [參考]瀏覽器附加元件 1-2-7 [參考]申請mailtrap帳號 1-2-8 [參考]用Homestead建構開發環境 2. 專案需求分析 2-1 建立專案 2-2 [參考]將專案加入本地端的 git 2-3 [參考]將專案放上GitHub 2-4 設定專案環境 2-5 Laravel運作週期 3. 建立使用者認證 3-1 新增中文語系 4. 了解路由 Router 及視圖 View 4-1 製作系統主樣板 4-2 為樣板製作中文語系檔 4-3 修改首頁畫面 4-4 Blade 樣板語法(自訂導覽列選項) 5. 安裝 laravel-admin 後台 5-1 修改後台設定檔 5-2 將後台選單中文化的方法 6. 修改使用者資料表 6-1 修改註冊頁面 6-2 讓新增的欄位可以寫入資料庫 6-3 剛剛我們做了什麼? 7. 開始定義系統各項功能 7-1 還沒有控制器的路由寫法 7-2 有控制器的路由寫法 8. 在後台新增買家管理 8-1 建立管理買家的後台控制器 8-2 新增管理買家的路由 8-3 新增選單 8-4 調整可修改的項目 9. 建立商品模型 9-1 編輯並執行商品(Product)的 migrate 檔案 9-2 建立後台商品管理頁面 9-3 中文化商品管理界面 9-4 後台新增商品頁面 9-5 後台的驗證表單資料 9-6 後台加入所見即所得編輯器 9-7 後台修改商品 10. 建立前台顯示商品頁面 10-1 建立前台商品控制器 10-2 修改路由讓首頁呈現商品列表 10-3 修改控制器以執行取得資料動作 10-4 修改模型以正確顯示圖片 10-5 修改視圖以顯示商品列表 11. 建立商品測試資料 11-1 讓系統也可以顯示測試圖片 11-2 建立Seeder快速填充資料 12. 建立商品詳情頁的路由 12-1 建立商品詳情頁的控制器 12-2 路由模型綁定 12-3 建立商品詳情頁的視圖 13. 一般的異常處理 13-1 優雅的異常處理 14. 關於購物車 14-1 建立購物車的模型 14-2 設定商品、購物車與買家的關聯 14-3 建立新增至購物車的路由 14-4 建立購物車控制器 15. 使用 Laravel Mix 來管理前端資源 15-1 修改前台視圖 15-2 安裝 SweetAlert 15-3 實現加入購物車按鈕 15-4 將購物項目寫入資料庫 15-5 用 fillable 批量賦值寫入 15-6 建立Request來做資料整理及檢查 15-7 利用模型觀察器建立使用者資料 15-8 根據不同情況來進行新增品項或累加品項 16. 查看購物車商品 16-1 微調購物車的傳送方式 16-2 刪除某個購物品項 16-3 調整商品數量 17. 關於訂單 17-1 建立訂單及品項的模型及控制器 17-2 設定訂單及訂單項目的關聯 17-3 加入送出訂單按鈕 17-4 我的訂單列表 17-5 後台訂單管理 17-6 中文化訂單管理界面 18. 重建由GitHub下載的Laravel專案 18-1 佈署到主機上