以下是您提供的英文文本翻译成繁體中文的版本:

Laravel - Working With Database

# Laravel - 透過數據庫工作

你好,有志者!我很興奮能帶領你進入 Laravel 與數據庫管理的迷人世界。作為一位教了多年計算機科學的人,我可以向你保證,掌握數據庫操作就像學騎自行車一樣 - 起初可能會讓人覺得困難,但一旦你掌握了它,你將能夠輕鬆地在你的專案中馳騁!

## 連接到數據庫

我們從基礎開始 - 連接到數據庫。將這個過程想象為讓你的 Laravel 應用程序認識它的新好朋友,數據庫。在他們開始合作之前,他們需要相互熟悉!

### 配置

首先,我們需要告訴 Laravel 我們的數據庫在哪裡以及如何訪問它。Laravel 透過其配置文件讓這件事變得非常簡單。打開專案根目錄下的 `.env` 文件,你會看到像這樣的內容:

DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD=


這些行就像給 Laravel 一張通往你的數據庫的地圖。讓我們分解一下:

- `DB_CONNECTION`:這是你使用的數據庫類型。MySQL 是默認值,但 Laravel 也支持其他類型。
- `DB_HOST`:你的數據庫位於何處。對於本地開發,這通常是你的電腦(127.0.0.1)。
- `DB_PORT`:Laravel 應敲哪個門號以訪問數據庫。
- `DB_DATABASE`:你的數據庫名稱。
- `DB_USERNAME` 和 `DB_PASSWORD`:你的進入數據庫的秘密握手。

### 測試連接

現在,我們已經讓 Laravel 認識了我們的數據庫,讓我們確保它們相处融洽。我們可以使用一個簡單的 artisan 命令來做這件事:

php artisan tinker


這會打開 Laravel 的交互式終端。現在,讓我們嘗試連接:

```php
DB::connection()->getPdo();

如果你看到了一長串的數字和字母,恭喜你!你的 Laravel 應用程序和數據庫現在已經是最好的朋友了。

創建表

現在,我們已經連接上了,是時候創建一些表了。在數據庫世界中,表就像我們存儲數據的電子表格。

遷移

Laravel 使用所謂的 "遷移" 來創建和修改表。將遷移想象為你的數據庫的時間機器 - 它們讓你可以在數據庫的歷史中前後穿越。

要創建一個遷移,使用以下 artisan 命令:

php artisan make:migration create_users_table

這將在 database/migrations 文件夾中創建一個新文件。打開它,你會看到像這樣的內容:

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
}

這就像你的表的藍圖。讓我們分解一下:

  • $table->id():創建一個自增的 ID 欄位。
  • $table->string('name'):創建一個用於存儲名字的欄位。
  • $table->string('email')->unique():創建一個唯一的電子郵件欄位。
  • $table->timestamp('email_verified_at')->nullable():創建一個可為空的時間戳記欄位。
  • $table->string('password'):創建一個用於存儲密碼的欄位。
  • $table->rememberToken():創建一個用於存儲 "記住我" 標籤的欄位。
  • $table->timestamps():創建 created_atupdated_at 欄位。

要在你的數據庫中實際創建這個表,運行:

php artisan migrate

然後,你的表就創建好了。

插入數據

現在,我們已經有了表,讓我們在裡面放入一些數據。在 Laravel 中有幾種方法可以做到這點。

使用 Eloquent

Eloquent 是 Laravel 內置的 ORM(對象關係映射)。它就像是你 PHP 代碼和數據庫之間的翻譯。以下是如何使用它來插入數據:

use App\Models\User;

$user = new User;
$user->name = 'John Doe';
$user->email = '[email protected]';
$user->password = bcrypt('password');
$user->save();

在這個例子中,我們創建了一個新的 User 對象,設置了它的屬性,然後將其保存到數據庫。這就是這麼簡單!

使用查詢構建器

如果你偏好更類似於 SQL 的方法,你可以使用 Laravel 的查詢構建器:

DB::table('users')->insert([
    'name' => 'John Doe',
    'email' => '[email protected]',
    'password' => bcrypt('password'),
]);

這種方法更直接 - 我們告訴 Laravel 要插入到哪個表以及使用哪些數據。

查詢數據

現在,我們已經將數據放入數據庫,讓我們學習如何將其取出。

使用 Eloquent

要查詢所有用戶:

$users = User::all();

要找到特定用戶:

$user = User::find(1);

要查詢滿足條件的用戶:

$users = User::where('name', 'John Doe')->get();

使用查詢構建器

要查詢所有用戶:

$users = DB::table('users')->get();

要找到特定用戶:

$user = DB::table('users')->where('id', 1)->first();

要查詢滿足條件的用戶:

$users = DB::table('users')->where('name', 'John Doe')->get();

更新數據

更新數據與插入數據一樣容易。讓我們看看一些方法。

使用 Eloquent

$user = User::find(1);
$user->name = 'Jane Doe';
$user->save();

使用查詢構建器

DB::table('users')
    ->where('id', 1)
    ->update(['name' => 'Jane Doe']);

刪除數據

最後,讓我們學習如何從我們的數據庫中刪除數據。

使用 Eloquent

$user = User::find(1);
$user->delete();

使用查詢構建器

DB::table('users')->where('id', 1)->delete();

以上就是你在 Laravel 中使用數據庫的基本知識。記住,熟練掌握需要練習。不要害怕嘗試和嘗試不同的查詢。在你意識到之前,你將會成為一名數據庫大師!

以下是我們所涵蓋的方法的快速參考表:

操作 Eloquent 查詢構建器
插入 $user = new User; $user->save(); DB::table('users')->insert([]);
查詢全部 User::all(); DB::table('users')->get();
查詢一個 User::find(1); DB::table('users')->where('id', 1)->first();
更新 $user->save(); DB::table('users')->where('id', 1)->update([]);
刪除 $user->delete(); DB::table('users')->where('id', 1)->delete();

未來的數據庫大師,快樂編程!

Credits: Image by storyset