本文将从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、数据库名称、数据库账号、数据库密码的填写。如图:
在.env文件中进行数据库配置信息的填写。如图:
💐💐:恭喜你完成了数据库的配置
二、【数据对象等文件的构建】
接下里,我们需要使用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官方文档。
输入代码,结果如图:
三、【数据迁移】
打开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默认包含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
结果如图:
打开数据库即可看到添加进的数据,如图:
💐💐:恭喜你完成了数据库的所有操作,接下里可以按照这个流程实现各种跟数据库的交互啦。