laravel如何快速实现数据填充(使用seeder)
时间:2021-11-15 来源:互联网
今天PHP爱好者给大家带来下面由Laravel教程栏目带大家介绍laravel利用seeder实现数据表中填充数据,希望对大家有所帮助!
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
官方文档地址: https://laravel.com/docs/5.5/seeding#writing-seeders
以上就是laravel如何快速实现数据填充(使用seeder)的详细内容,更多请关注php爱好者其它相关文章!
-
十万里的梗是什么梗?揭秘爆火网络热词背后的趣味含义和走红原因! 2025-10-19
-
十一是什么梗?揭秘国庆假期爆火网络热梗的由来和含义,看完秒懂! 2025-10-19
-
十一月新梗来袭!全网热议的十一月梗是什么梗?速看真相引爆社交圈 2025-10-19
-
十一月梗是什么梗?揭秘全网爆火的暖心社交新潮流,看完秒懂年轻人都在玩什么! 2025-10-19
-
如鸢新密探祢衡命盘推荐-祢衡完美命盘是什么参考 2025-10-19
-
蛋仔派对高校创造营进行中-参与有机会分20W奖金 2025-10-19