技術 5 分鐘閱讀
Laravel 12 新手入門:從安裝到第一個 CRUD
前言
最近幫一個朋友入門 Laravel,順便把教學過程整理成文章。這篇會帶你從零開始,建立一個簡單的待辦事項 CRUD 應用。
環境準備
首先確認你的環境有安裝 PHP 8.2+ 和 Composer:
php -v
composer -V
建立新專案
composer create-project laravel/laravel todo-app
cd todo-app
php artisan serve
打開瀏覽器 http://localhost:8000,看到 Laravel 歡迎頁就成功了。
建立資料庫 Migration
先設定 .env 的資料庫連線,這裡用 SQLite 最簡單:
DB_CONNECTION=sqlite
touch database/database.sqlite
接著建立 Todo 的 Migration:
php artisan make:migration create_todos_table
// database/migrations/xxxx_create_todos_table.php
public function up(): void
{
Schema::create('todos', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->boolean('completed')->default(false);
$table->timestamps();
});
}
執行 migration:
php artisan migrate
建立 Model 與 Controller
php artisan make:model Todo
php artisan make:controller TodoController --resource
Model 設定
// app/Models/Todo.php
class Todo extends Model
{
protected $fillable = ['title', 'completed'];
}
Controller CRUD 邏輯
// app/Http/Controllers/TodoController.php
public function index()
{
$todos = Todo::latest()->get();
return view('todos.index', compact('todos'));
}
public function store(Request $request)
{
$request->validate(['title' => 'required|max:255']);
Todo::create($request->only('title'));
return redirect()->route('todos.index');
}
public function update(Request $request, Todo $todo)
{
$todo->update(['completed' => !$todo->completed]);
return redirect()->route('todos.index');
}
public function destroy(Todo $todo)
{
$todo->delete();
return redirect()->route('todos.index');
}
設定路由
// routes/web.php
use App\Http\Controllers\TodoController;
Route::resource('todos', TodoController::class);
建立 View
這裡簡化只展示核心模板:
<!-- resources/views/todos/index.blade.php -->
<form action="{{ route('todos.store') }}" method="POST">
@csrf
<input type="text" name="title" placeholder="新增待辦事項">
<button type="submit">新增</button>
</form>
@foreach($todos as $todo)
<div>
<span class="{{ $todo->completed ? 'line-through' : '' }}">
{{ $todo->title }}
</span>
<form action="{{ route('todos.update', $todo) }}" method="POST">
@csrf @method('PATCH')
<button>切換完成</button>
</form>
</div>
@endforeach
下一步
完成基本 CRUD 後,建議學習:
- 使用 Tailwind CSS 美化介面
- 加入 Seeder 產生測試資料
- 搭配 React 做前後端分離
小結
Laravel 的學習曲線對有 PHP 基礎的人來說相當友善。從這個簡單的 CRUD 開始,逐步加上更多功能,你會發現 Laravel 的設計哲學讓開發過程非常愉快。
如果你需要類似的系統,歡迎聯繫討論。
#Laravel #入門教學