Laravel - 数据库操作入门

你好,有抱负的开发者们!我很高兴带你们走进 Laravel 和数据库管理的迷人世界。作为一个教计算机科学多年的老师,我可以向你保证,掌握数据库操作就像学习骑自行车一样 - 起初可能会觉得有些困难,但一旦你掌握了它,你将在你的项目中轻松自如地穿梭!

Laravel - Working With Database

连接数据库

让我们从基础开始 - 连接数据库。想象一下,这是让你的 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_USERNAMEDB_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_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