Rumah > pembangunan bahagian belakang > tutorial php > Thinkphp5 使用composer中seeder播种机

Thinkphp5 使用composer中seeder播种机

PHP中文网
Lepaskan: 2023-03-20 10:46:01
asal
1987 orang telah melayarinya

前因:

前几天,客户要求做一个会员问答的系统,我就按流程做了,到了需要调用数据库数据时,觉得一个个添加又有点笨~

 解决过程:

后来查了查手册,看看国外blog案例,我搞出来了个不错的方法~~~

 我的使用记录已截图:

 

 

 

直到后面这个,显示出,时间,就表明播种机运行成功了~ 

  

以下是使用官方过程

Seeder 的创建

在 Thinkphp5 项目中,我们可以在命令行输入下面这条命令:

php think seed:create UserSeeder
Salin selepas log masuk

创建一个 UserSeeder 文件,创建成功之后你可以在 database/seeds 目录下面看到:

database|-seeds
|-|-UserSeeder.php
Salin selepas log masuk

其内容如下:

<?phpuse think\migration\Seeder;class UserSeeder extends Seeder
{    /**
     * Run Method.
     *
     * Write your database seeder using this method.
     *
     * More information on writing seeders is available here:
     * http://docs.phinx.org/en/latest/seeding.html
     */    public function run()
    {

    }
}
Salin selepas log masuk

代码非常的简单,默认的给出了一个 run 方法,现在我们都知道 seeder 文件是用来产生模拟数据的,而产生模拟数据的代码写在 run 方法中就可以了。

Seeder 的 run 方法

run 方法中,我们可以随意填写了可以填充数据库的任意代码。这里我就抛砖引玉啦:

要求:
给数据表 Users 模拟生成100条数据。表结构如下:

字段说明
nickname呢称
<a href="http://www.php.cn/code/114.html" target="_blank">email</a>邮箱
password密码

收到需求后,我可以这样写:

<?phpuse think\migration\Seeder;class UserSeeder extends Seeder
{    /**
     * Run Method.
     *
     * Write your database seeder using this method.
     *
     * More information on writing seeders is available here:
     * http://docs.phinx.org/en/latest/seeding.html
     */    public function run()
    {
        $rows = [];        for ($i = 0; $i < 100; $i++) {
            $rows[] = [                &#39;nickname&#39; => mt_rand(10000, 99999),                &#39;email&#39; => mt_rand(10000, 99999).&#39;@qq.com&#39;,                &#39;password&#39; => md5(&#39;123456&#39;),
            ];
        }        $this->table(&#39;users&#39;)->insert($rows)->save();
    }
}
Salin selepas log masuk

注意:一定要调用 save() 方法,否则不会保存的。

首先呢,我生成了100条数据,然后调用 $this->table(&#39;users&#39;)->insert($rows)->save(); 将生成的数据插入到数据库的 Users 表中。是不是很简单? ^ - ^.

执行 Seeder

Seeder 文件定义好了之后,还必须得执行一下数据才能插入到数据库中,我们可以这样执行:

php think seed:run
Salin selepas log masuk

执行成功提示: All Done. Took 0.0552s。可以看到:



 

php think seed:run 

Atas ialah kandungan terperinci Thinkphp5 使用composer中seeder播种机. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan