zoukankan      html  css  js  c++  java
  • Thinkphp5 使用composer中seeder播种机

    前因:

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

    解决过程:

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

    我的使用记录已截图:

     

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

     

    以下是使用官方过程

    Seeder 的创建

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

    php think seed:create UserSeeder
    

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

    database
    |-seeds
    |-|-UserSeeder.php
    

    其内容如下:

    <?php
    
    use 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()
        {
    
        }
    }
    

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

    Seeder 的 run 方法

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

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

    字段说明
    nickname 呢称
    email 邮箱
    password 密码

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

    <?php
    
    use 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[] = [
                    'nickname' => mt_rand(10000, 99999),
                    'email' => mt_rand(10000, 99999).'@qq.com',
                    'password' => md5('123456'),
                ];
            }
    
            $this->table('users')->insert($rows)->save();
        }
    }
    

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

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

    执行 Seeder

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

    php think seed:run
    

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

     
    php think seed:run 
     
     
     
     
  • 相关阅读:
    zw字王《中华大字库》2018版升级项目正式启动
    字王大藏经体v0.1概念版
    zw-clay字王胶泥体系列
    中文字库的造与创
    【转】Delphi+Halcon实战一:两行代码识别QR二维码
    zw.delphi不同版本程序运行速度测试
    《zw版·Halcon入门教程与内置demo》
    字王·百字工程·第一阶段纪念
    黑天鹅算法与大数据的四个层次
    zw版足彩大数据&报价
  • 原文地址:https://www.cnblogs.com/darrenzzy/p/8436321.html
Copyright © 2011-2022 走看看