# 1. 下載 Git ## 2. 在 Git 輸入 ```sh git config --global user.name "您的帳號" git config --global user.email "您的Email" ``` ## 3. 確認是否正確輸入 ```sh git config --list ``` ## 4. 下載 7z 壓縮 # 5. 安裝 Laravel ## 切換分割區 d:\ c:\ ```sh cd 切換到 Apache 的根目錄 ``` ## 啟動 XAMPP - 勾選 Apache 和 MySQL - 開啟 Shell ## 安裝 Composer ```sh composer ``` ## 建立 Laravel 專案 ```sh cd htdocs mkdir laravel # 建置資料夾 cd laravel composer create-project --prefer-dist laravel/laravel test_20250211 # 建置專案 ``` ## 檢查 Composer 版本與診斷 ```sh composer -V composer diagnose ``` ## 確認 Laravel 安裝成功 開啟瀏覽器輸入: ``` http://localhost/laravel/test_20250211/public/ ``` ## 普遍的 GET 傳遞參數方式 ``` xxx.com?a=100&b=30 ``` ## Laravel 傳遞參數方式 ``` xxx.com/a/b ``` ## 修改 Apache 根目錄 在 `httpd.conf` 修改: ```apache DocumentRoot "D:/xampp/htdocs/laravel/test_20250211/public/" <Directory "D:/xampp/htdocs/laravel/test_20250211/public/"> ``` # Laravel 專案架構 - `app` : 核心程式(Controller、Model、Middleware) - `bootstrap` : Laravel 快取 - `config` : 參數設定 - `databases` : 資料庫相關(migrations) - `public` : 公開資料、首頁 - `resources` : 前端檔案、View - `route` : 路由設定 - `storage` : Log、上傳檔案 - `tests` : 測試檔案 - `vendor` : Composer 套件(不進入 Git 管理) - `.env` : 設定參數(機敏資料,不受 Git 管理) ## 建立資料庫 ```sh create database laravel; ``` # 設定資料庫 ## 修改 `.env` 設定資料庫連線 ![.env修改](https://hackmd.io/_uploads/BygZLV8qke.png) ``` 把 DB_CONNECTION=sqlite 註解 DB_CONNECTION= //依照自己使用的資料庫名稱 DB_HOST=localhost DB_PORT=3306 //要和資料庫相同的port DB_DATABASE=laravel //所建立的資料庫名稱 DB_USERNAME=root //資料庫帳號 DB_PASSWORD= //資料庫密碼 ``` ## 重新載入 `.env` ```sh php artisan config:cache ``` # Migration 資料庫遷移 ## 產生 Migration ```sh php artisan make:migration create_user_table ``` ## 執行 Migration 建立資料表 ```sh php artisan migrate ``` ## 查看 MySQL 是否建立資料表 ```sql describe users; ``` # Migration 回滾與重設 ## 回復至未建立狀態 ```sh php artisan migrate:rollback ``` ## 手動刪除 MySQL 資料表 ## 重新建立所有 Table ```sh php artisan migrate:refresh ``` ## 清空資料表(需重新建立) ```sh php artisan migrate:reset ``` # database->Migration 檔案結構 ```php Schema::create('users', function (Blueprint $table) { $table->id(); // 主鍵,自動遞增 $table->string('username'); // 使用者名稱 $table->string('image')->nullable(); // 允許空值的圖片欄位 $table->char('remember_token', 100); // 記住 Token $table->timestamps(); // 建立 create_at 和 update_at 欄位 }); ``` Laravel 提供許多函式來設定資料表,建議最基本的欄位包含: - `$table->id();` - `$table->timestamps();` ## `laravel.env` 檔案設定 建議 `.env` 檔案改為 `public` 本地端開發 `local` 及 `public` 皆可,專案上線後因為要讓部分檔案可公開讓大家儲存,就會需要改成 `public` ```bash FILESYSTEM_DISK=public ``` ## 建立 Storage 符號連結 Laravel 預設會將上傳的檔案儲存至 `storage/app/public`,但如果要讓這些檔案可以透過 `public/storage` 存取,就需要建立一個符號連結: ``` php artisan storage:link ``` 執行後,`public/storage` 會連結到 `storage/app/public`,這樣就可以透過瀏覽器存取上傳的檔案。 如果遇到 `"The public/storage directory already exists."`,請先刪除原本的 `public/storage` 再重新執行: ``` rm -rf public/storage php artisan storage:link ```