laravel:如何快速实现数据填充,创建模拟数据(使用seeder)

 首先要执行php artisan命令

php artisan make:seeder

创建相应的文件

php artisan make:seeder TestSeeder

首先我先创建一个test表,如下所示

TestSeeder.php文件内容如下所示

<?php

 

use Illuminate\Database\Seeder;

 

class TestSeeder extends Seeder

{

    /**

     * Run the database seeds.

     *

     * @return void

     */

    public function run()

    {

        DB::table('test')->insert([

            'name' => str_random(10),

            'sex' => rand(1,2), // 1男 2女

            'email' => str_random(10).'@qq.com',

            'password' => bcrypt('123456'), // bcrypt为hash加密

        ]);

    }

}

执行如下命令进行填充假数据

php artisan db:seed --class=TestSeeder

 

每添加一条都要执行一边命令,这样会很麻烦,不如写一个for循环来一次新插入

for ($x=0; $x<=10; $x++) {

     DB::table('test')->insert([

          'name' => str_random(10),

          'sex' => rand(1,2), // 1男 2女

          'email' => str_random(10).'@qq.com',

          'password' => bcrypt('123456'), // bcrypt为hash加密

     ]);

}

数据库的数据展示如下:

如需要同时添加多个表的测试数据,需要在DatabaseSeeder.php中添加:

<?php



use Illuminate\Database\Seeder;



class DatabaseSeeder extends Seeder

{

    public function run()

    {

        // $this->call(UsersTableSeeder::class);

         $this->call(CreateDepartmentsSeeder::class);

         $this->call(CreateUsersSeeder::class);

         $this->call(CreateWagesSeeder::class);

    }

}

 

执行如下命令进行填充多个表的测试数据

php artisan db:seed

当我们执行  php artisan db:seed

提示 class UserTableSeeder does not exist

这个错误基本是出现在不经过composer的时候出现的,至于为什么会出现呢?

1.可能是你执行php artisan make:seeder UserTableSeeder 的时候,他没有把UserTableSeeder.php 写到自动加载里面去

2.你是复制过来的

解决方法: composer dump-autoload

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值