以下是您提供的英文文本翻译成繁體中文的版本:
# 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_at
和updated_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