梦入琼楼寒有月,行过石树冻无烟

Laravel Factory SQL

Laravel 为开发者提供了 Factory解决数据库的创建以及填充,这也在Laravel v6中被称之为“数据库测试”,但本文中主要根据实际情况来创建一个模型工厂(Model factory)。模型工厂主要用于来新建数据库和相应的模型,最后映射在数据库中,当然也可以进行数据库的随机填充。

如果将 Laravel Factory 与 Java Spring boot 相比的话,单纯通过数据库映射来进行比较,因为 Spring 是根据你在运行时直接判断是否创建字段和数据库的,如果配置正确则在运行时直接给你创建,相比之下 Spring 还是较为方便的。但是如果根据总体功能来将,Laravel Factory 将会更上一层,因为其默认将 fakerr 库作为依赖项,即随着 Laravel 一起进行提供,因此 Factory 还可以对数据库进行随机填充

创建模型

在此之前,希望您已经配置了数据库相关的文件,如数据库名称(dataname)、帐号(username)、密码(password)等配置的正确,以及已经成功构建了一个 Laravel 项目并保证php artisan serv可以正确的运行,在此之后您可以进行新建工厂的步骤(create factory)。

artisan make:model Issues -m``` 通过使用 make:model 来创建一个模型,之后会在 **/database/migrations/** 下创建一个名为“2021_05_07_002215_create_issues_table.php”的文件,以及在```app/```路径下新建一个**Issues.php**文件,我们可以通过```2021_05_07_002215_create_issues_table.php```文件中写入**数据库表名和字段类型和名称等**:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

```php
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateIssuesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('issues', function (Blueprint $table) {
$table->bigIncrements('id');
$table->text('titles');
$table->dateTime('datetimes');
$table->text('names');
$table->text('category');
$table->text('harms');
$table->text('paths');
$table->text('types');
$table->timestamps();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('issues');
}
}

对应的数据库命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
create table issues
(
id bigint unsigned auto_increment
primary key,
titles text not null,
datetimes datetime not null,
names text not null,
category text not null,
harms text not null,
paths text not null,
types text not null,
created_at timestamp null,
updated_at timestamp null
)
collate = utf8mb4_unicode_ci;

映射数据库

1
2
3
php artisan migrate
Migrating: 2021_05_07_002215_create_issues_table
Migrated: 2021_05_07_002215_create_issues_table (0.02 seconds)

当我们创建完模型(create model)之后,需要通过使用php artisan migrate来映射到数据库中,此时数据库将会生成并创建一个名为issues的数据表,在此下包含了对应的字段名称和相应类型。

⬅️ Go back