Laravel 入門:查詢產生器初學者指南

Susan Sarandon
發布: 2024-09-23 06:22:02
原創
663 人瀏覽過

Getting Started with Laravel: A Beginner

Laravel 的 查詢產生器 提供了一個強大、流暢的介面,用於在 PHP 中建立 SQL 查詢。它允許您以富有表現力的、類似 SQL 的語法與資料庫交互,同時抽像出大部分複雜性。

我們將演練 Laravel 應用程式中的典型用例,使用查詢產生器執行各種任務,例如選擇、插入、更新和刪除資料。


第 1 步:設定 Laravel 項目

如果您沒有 Laravel 項目,您可以如下設定一個:

composer create-project --prefer-dist laravel/laravel laravel-query-builder
cd laravel-query-builder
php artisan serve
登入後複製

確保在 .env 檔案中設定資料庫配置:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database
DB_USERNAME=your_username
DB_PASSWORD=your_password
登入後複製

運行遷移以建立預設表:

php artisan migrate
登入後複製

第 2 步:在控制器中使用查詢產生器

讓我們建立一個控制器來示範查詢產生器的用法:

php artisan make:controller UserController
登入後複製

使用以下程式碼編輯 UserController.php:

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;

class UserController extends Controller
{
    // Fetching all users from the users table
    public function index()
    {
        // Step 3: Select all users
        $users = DB::table('users')->get();

        return response()->json($users);
    }

    // Insert a new user
    public function store(Request $request)
    {
        // Step 4: Insert a new user
        DB::table('users')->insert([
            'name' => $request->name,
            'email' => $request->email,
            'password' => bcrypt($request->password),
        ]);

        return response()->json(['message' => 'User created successfully!']);
    }

    // Update an existing user
    public function update(Request $request, $id)
    {
        // Step 5: Update user by ID
        DB::table('users')
            ->where('id', $id)
            ->update([
                'name' => $request->name,
                'email' => $request->email,
            ]);

        return response()->json(['message' => 'User updated successfully!']);
    }

    // Delete a user
    public function destroy($id)
    {
        // Step 6: Delete user by ID
        DB::table('users')->where('id', $id)->delete();

        return response()->json(['message' => 'User deleted successfully!']);
    }
}
登入後複製

第 3 步:檢索數據

使用查詢產生器從使用者表中選取所有行:

$users = DB::table('users')->get();
登入後複製
  • 描述
    • DB::table('users') 方法以 users 表為目標。
    • get() 方法會擷取該表中的所有記錄。

回應範例:

[
    {
        "id": 1,
        "name": "John Doe",
        "email": "john@example.com"
    },
    {
        "id": 2,
        "name": "Jane Doe",
        "email": "jane@example.com"
    }
]
登入後複製

第四步:插入數據

使用查詢產生器插入新使用者:

DB::table('users')->insert([
    'name' => 'Alice',
    'email' => 'alice@example.com',
    'password' => bcrypt('password123'),
]);
登入後複製
  • 描述
    • insert() 方法將新行插入到 users 表中。
    • 資料作為關聯數組傳遞,其中鍵與列名稱匹配。

這會將新使用者加入到使用者表中。


第5步:更新數據

要更新現有記錄,請使用 update():

DB::table('users')
    ->where('id', 1)
    ->update([
        'name' => 'John Smith',
        'email' => 'johnsmith@example.com'
    ]);
登入後複製
  • 描述
    • where() 子句選擇 id = 1 的行。
    • update() 方法修改所選行的姓名和電子郵件欄位。

這會更新使用者表中 ID 為 1 的使用者。


步驟6:刪除數據

要從資料庫中刪除記錄,請使用delete():

DB::table('users')->where('id', 2)->delete();
登入後複製
  • 描述
    • where() 子句指定選擇 ID 為 2 的使用者的條件。
    • delete() 方法從表中刪除符合的行。

這將刪除 ID 為 2 的使用者。


第 7 步:使用查詢產生器進行篩選

您可以連結其他方法來過濾資料或新增條件到查詢。

範例:檢索具有特定條件的用戶

$users = DB::table('users')
    ->where('email', 'like', '%example.com%')
    ->orderBy('name', 'asc')
    ->get();
登入後複製
  • 描述
    • where() 子句新增一個條件,取得電子郵件包含 example.com 的使用者。
    • orderBy() 方法依名稱升序對使用者進行排序。

第8步:分頁

Laravel 的查詢產生器可以輕鬆對結果進行分頁。

$users = DB::table('users')->paginate(10);
登入後複製
  • 描述
    • paginate() 方法將結果分成幾頁,每頁顯示 10 個結果。

第9步:交易

使用資料庫事務來確保多個查詢執行成功。如果一個查詢失敗,所有變更都會回滾。

DB::transaction(function () {
    DB::table('users')->insert([
        'name' => 'John Doe',
        'email' => 'john@example.com',
        'password' => bcrypt('password123')
    ]);

    DB::table('orders')->insert([
        'user_id' => 1,
        'order_total' => 500
    ]);
});
登入後複製
  • 描述
    • transaction()方法確保users和orders表插入都成功執行。如果其中一個失敗,兩個操作都會回滾。

第 10 步:原始查詢

如果您需要執行原始 SQL,Laravel 的查詢產生器允許這樣做:

$users = DB::select('SELECT * FROM users WHERE id = ?', [1]);
登入後複製
  • 描述
    • select() 方法可用來執行原始 SQL 查詢。
    • 它使用準備好的語句(?)來確保安全,防止 SQL 注入。

結論

Laravel 的查詢產生器提供了一種強大而靈活的方式與資料庫交互,抽象化了大部分 SQL 複雜性。透過分解每個部分——檢索、插入、更新、刪除、過濾等等——您可以以乾淨、有組織的方式輕鬆管理資料庫互動。

此範例提供了查詢產生器的基本指南。隨著應用程式的成長,您可以使用更多進階功能,例如連接、子查詢和 Eloquent 的預先載入。

以上是Laravel 入門:查詢產生器初學者指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!