📜  codeigniter 4 db 种子 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:40:08.201000             🧑  作者: Mango

Codeigniter 4数据库种子 - Shell-Bash

在 Codeigniter 4 中,种子是用于在数据库中填充数据的的一个非常有用的工具。您可以使用种子,将一组默认数据插入到数据库表中,然后在应用程序中使用这些数据。

本文将介绍您如何使用 Codeigniter 4 的种子功能,并将为您提供一些常见的用例场景示例。

创建数据库种子

首先,我们需要创建一个数据库种子文件。在 Codeigniter 4 中,数据库种子存储在 app/Database/Seeds 目录中。您可以从命令行使用以下命令创建一些种子:

php spark make:seeder MySeeder

上面的命令将创建一个名为 MySeeder 的 Seed 类,并将其存储在 app/Database/Seeds 目录中。您可以使用您自己的名称替换 MySeeder

在创建了种子文件之后,打开该文件并添加一个名为 run 的方法。该方法将是用于插入默认数据的。

namespace App\Database\Seeds;

use CodeIgniter\Database\Seeder;

class MySeeder extends Seeder
{
    public function run()
    {
        // 添加默认数据到数据库表
    }
}

现在,我们已经创建了种子文件并添加了一个 run 方法,可以在方法中添加一些默认数据了。

插入数据

要向数据库添加数据,我们必须使用 Codeigniter 4 的数据库类。在启动 Codeigniter 4 时,该类已自动加载。我们可以使用以下代码获取数据库实例:

$db = \Config\Database::connect();

在此之后,我们可以在 run 方法中使用 $db 变量来执行 SQL 查询并添加默认数据。例如,以下代码将在 users 表中插入两行数据:

public function run()
{
    // 获取数据库实例
    $db = \Config\Database::connect();

    // 添加用户1
    $data = [
        'username' => 'user1',
        'email'    => 'user1@example.com',
        'password' => password_hash('password1', PASSWORD_DEFAULT),
    ];
    $db->table('users')->insert($data);

    // 添加用户2
    $data = [
        'username' => 'user2',
        'email'    => 'user2@example.com',
        'password' => password_hash('password2', PASSWORD_DEFAULT),
    ];
    $db->table('users')->insert($data);
}
运行种子

完成了种子的编写之后,我们可以在命令行中使用以下命令运行该种子:

php spark db:seed MySeeder

上面的命令将执行 MySeeder 类中的 run 方法,并将插入预定义的默认数据到数据库中。

结论

在本文中,您已了解了如何使用 Codeigniter 4 中的种子功能。我们创建了一个种子文件并在其中插入数据。通过使用种子,我们可以轻松地添加预定义的数据到数据库中,使我们的应用程序更加可靠,易于维护。