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 的交互式 shell。现在,让我们尝试连接:
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