php的seeder是什么,laravel利用seeder实现数据表中填充数据

给大家演示一下如何快速填充数据表中的数据

首先要执行php artisan命令 会出现各种命令指示 查找到

php artisan make:seeder

复制代码

6844903872457097229

根据命令指示创建相应的文件,如下所示

php artisan make:seeder TestSeeder

复制代码

6844903872457097229

a6b9d74e621304968098815a33cb8205.png

6844903872457097229

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

5848d05a312a45e625b613cb0fa32751.png

6844903872457097229

TestSeeder.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加密

]);

}

}

复制代码

6844903872457097229

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

php artisan db:seed --class=TestSeeder

复制代码

6844903872457097229

acafea72763f8cc5801d70a5104f90d6.png

6844903872457097229

每添加一条都要执行一边命令,这样会很麻烦,不如写一个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加密

]);

}

复制代码

6844903872457097229

数据库的数据展示如下:

e0b89e38dbdb0c0537416f769678d1e6.png

6844903872457097229

如需要同时添加多个表的测试数据,需要在DatabaseSeeder.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);

}

}

复制代码

6844903872457097229

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

php artisan db:seed

复制代码

6844903872457097229

当我们执行 php artisan db:seed

提示 class UserTableSeeder does not exist

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

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

2.你是复制过来的

解决方法: composer dump-autoload

复制代码

6844903872457097229

纯原创,所有文章都是经验所得,希望可以获得大家的支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHP使用命令自动生成模型类Student,需要使用Laravel框架的Artisan命令行工具。首先,需要在终端进入Laravel项目的根目录,然后运行以下命令: ``` php artisan make:model Student -m ``` 这个命令会生成一个名为Student的模型类,并且会同时生成一个与模型类对应的迁移文件,用于创建students表。在生成迁移文件时,可以使用--create选项指定表名,如: ``` php artisan make:model Student -m --create=students ``` 接下来,在生成的Student模型类添加$table、$timestamps和$fillable属性,如下所示: ```php <?php namespace App; use Illuminate\Database\Eloquent\Model; class Student extends Model { protected $table = 'students'; // 指定数据表名 public $timestamps = true; // 开启自动维护时间戳 protected $fillable = ['name', 'age', 'gender']; // 指定可批量赋值的属性 } ``` 其,$table属性用于指定模型对应的数据表名,$timestamps属性用于控制是否自动维护created_at和updated_at字段,$fillable属性用于指定可以通过模型的create()方法批量赋值的属性。 最后,需要在students表添加测试数据,可以使用LaravelSeeder和Factory来实现。首先,需要在终端运行以下命令生成一个Student模型的Seeder: ``` php artisan make:seeder StudentSeeder ``` 然后,在生成的StudentSeeder编写填充数据的逻辑,如下所示: ```php <?php use Illuminate\Database\Seeder; use App\Student; class StudentSeeder extends Seeder { public function run() { factory(Student::class, 10)->create(); } } ``` 以上代码使用了Laravel的Factory来生成10条Student模型的测试数据。最后,运行以下命令执行seeder填充数据: ``` php artisan db:seed --class=StudentSeeder ``` 执行完毕后,即可在students表查看到添加的测试数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值