本文将从Laravel数据库的以下四个方面谈起:

数据库的连接、数据对象等文件的构建、数据迁移、数据填充。

【操作系统】

Apple Mac M1

macOS Big Sur 版本 11.6

【工程环境】

MAMP Version 6.3

PHP Version 8.0.0

Mysql Version 5.7.32

一、【数据库的连接】

首先打开MAMP,运行其中的Mysql数据库,注意更改其中的端口,以免发生冲突(我的Mysql端口设置为8890)。接下里在Laravel项目中进行数据库相关文件的配置。

在Laravel中配置两个文件即可完成数据库的配置。一个为config目录下的database.php文件,另一个为主目录下的.env文件。如果你只配置了database.php文件,忘记了配置.env文件,数据库将无法连接。

⚠️注意⚠️:在我们进行数据库连接的时候,我们首先需要创建一个数据库用于连接,以及需要对数据库进行账号密码的设置。可以通过一些数据库管理软件,或者PhpStorm中的数据库连接功能实现该操作。

接下里我们在database.php文件中,进行数据库host、数据库名称、数据库账号、数据库密码的填写。如图:

laravel 使用predis数据库报错 laravel链接数据库_数据

在.env文件中进行数据库配置信息的填写。如图:

laravel 使用predis数据库报错 laravel链接数据库_数据库_02

💐💐:恭喜你完成了数据库的配置

二、【数据对象等文件的构建】

接下里,我们需要使用Laravel中的artisan命令行来创建数据对象。下面是常用的几个命令:

php artisan make:model Article –a

该命令会帮助建立Model、Factory、Migration、Controller、Seeder

php artisan make:model Article -mfsc

该命令也会帮助建立Model、Factory、Migration、Seeder、Controller

💡技巧💡:还有其他artisan创建文件命令,请自行查看Laravel官方文档。

输入代码,结果如图:

laravel 使用predis数据库报错 laravel链接数据库_数据_03

三、【数据迁移】

打开database/migrations路径下的create_articles_table.php文件,在up方法中进行articles表的构建。

为了测试方便,我在articles表中添加了一个text属性,代码如下:

public function up()
{
    Schema::create('articles', function (Blueprint $table) {
        $table->id();
        $table->string("text");
        $table->timestamps();
    });
}

此时在terminal中输入命令来完成数据表的构建。(这一步是数据迁移的一部分,虽然是构建操作。)

输入以下代码,完成数据迁移:

php artisan migrate

laravel 使用predis数据库报错 laravel链接数据库_laravel_04

💡技巧💡:为什么出现了这么多内容?是因为Laravel默认包含users、password、failed、personal等迁移文件,会在migrate这个命令下,完成所有迁移操作。

这时候可以在数据库中发现新建立的表。

四、【数据填充】

打开database/factories路径下的ArticleFactory.php文件。在definition方法中完成数据填充的定义。

public function definition()
{
    return [
        'text'=>$this->faker->text
    ];
}

⚠️注意⚠️:这里设置一个是因为Laravel对id、timestamps自动实现添加操作。如果去掉id、timestamps,那么需要对你定义的表属性,实现你想要的Faker注入。

接下来,打开database/seeders路径下的ArticleSeeder.php文件。在run函数中添加下面的代码。使用模型的工厂模式来实现单属性的构造。用于测试,我构造了10个。

public function run()
{
    Article::factory(10)->create();
}

下面,打开database/seeders路径下的DatabaseSeeder.php文件。在run函数中添加下面的代码。实现对ArticleSeeder的调用。

public function run()
{
    // \App\Models\User::factory(10)->create();
    $this->call(ArticleSeeder::class);
}

最后,在terminal中输入下面的代码,实现数据填充。

php artisan db:seed

结果如图:

laravel 使用predis数据库报错 laravel链接数据库_laravel_05

打开数据库即可看到添加进的数据,如图:

laravel 使用predis数据库报错 laravel链接数据库_数据库_06

💐💐:恭喜你完成了数据库的所有操作,接下里可以按照这个流程实现各种跟数据库的交互啦。