技術 5 分鐘閱讀

Laravel 12 新手入門:從安裝到第一個 CRUD

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 後,建議學習:

小結

Laravel 的學習曲線對有 PHP 基礎的人來說相當友善。從這個簡單的 CRUD 開始,逐步加上更多功能,你會發現 Laravel 的設計哲學讓開發過程非常愉快。

如果你需要類似的系統,歡迎聯繫討論。

#Laravel #入門教學
Thousand Lab

Thousand Lab