1.创建建表文件

  php artisan make:migration create_comments_table

  打开database/migrations/xxx_create_comments_table.php:

    public function up()
{
Schema::create('comments',function(Blueprint $table){
$table->engine = 'InnoDB';
$table->increments('id');
$table->integer('article_id');
$table->integer('user_id');
$table->string('content');
$table->timestamps();
});
} /**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('comments');
}

2.生成表

php artisan migrate

3.创建填充表数据的文件

php artisan make:seed ReplyTableSeeder

  1).打开:database/seeds/CommentsTableSeeder.php

use Illuminate\Database\Seeder;

class CommentsTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
factory(\App\Models\Comment::class)->times(30)->create(); // 表示创建30条数据。factory方法对应第三步
}
}

  2).打开database\seeds\DatabaseSeeder.php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$this->call(CommentsTableSeeder::class); // 会调用CommentsTableSeeder的run方法
  }
}

  3).打开database\factories\ModelFactory.php

$factory->define(App\Models\Comment::class, function (Faker\Generator $faker) {
$user = DB::table('users')->select('id')->orderBy(DB::raw('RAND()'))->first();
if(empty($user))
{
$user->id = 0;
} $article = DB::table('articles')->select('id')->orderBy(DB::raw('RAND()'))->first();
if(empty($article))
{
$article->id = 0;
} return [
'user_id'=>$user->id, // user表随机查询
'article_id'=>$article->id, // 从article表u随机查询
'content' => '内容:'.$faker->text, // faker用法自寻,或转到vendor\fzaninotto\faker\src\Faker\Generator.php,看文件开头的注释
];
});

  4).如何让faker填充中文

    打开app\Providers\AppServiceProvider.php:

    public function boot()
{
\Carbon\Carbon::setLocale('zh'); // 针对时间包,转化后为中文的时间 //生成中文数据
$this->app->singleton(FakerGenerator::class, function() {
return FakerFactory::create('zh_CN');
});
}

   注:设置后faker属性仍是英文,是因为包里面就没有中文数据

4.生成数据

php artisan db:seed

5.假如要新增表,那么在建好建表的文件后,执行php artisan migrate,会提示xxx表已经存在,需要先回滚

php artisan migrate:rollback // 会调用建表文件中的down方法,把数据库结构恢复到最初状态

6.回滚完毕后,再重复1~4

最新文章

  1. iOS - 跳到系统App内部设置
  2. HTTP Header 详解
  3. SQL、Linq、lamda表达式 同一功能不同写法
  4. C#如何自定义DataGridViewColumn来显示TreeView
  5. 5.19[bzoj树网的核]
  6. (转)Tarjan应用:求割点/桥/缩点/强连通分量/双连通分量/LCA(最近公共祖先)
  7. jmeter 响应结果分析一
  8. 自己编写的基于VC++6.0的串口调试软件,并贡献源程序!
  9. LSI SAS 2208 配置操作
  10. -webkit-filter是神马?
  11. RE:考勤系统的复盘
  12. Pescal Triangle Two
  13. SQLServer删除登录帐户
  14. [原创]iFPGA-USB2.0 FT2232H USB & UART开发板使用说明
  15. go框架gin的使用
  16. 004-restful应用构建、分布式会话、测试工具简介
  17. PHP设计模式之工厂模式(转)
  18. 转::before和::after伪元素的用法
  19. JavaScript 浏览器对象模型 (BOM)
  20. Spark版本发布历史,及其各版本特性

热门文章

  1. TCL S960T刷机包 乐蛙OS5 稳定版 平滑 优化
  2. 关闭Wind XP/Vista/Win7的DEP数据执行保护汇总(转)
  3. Windows SublimeText内使用NDK编译Android so(不用cygwin)
  4. Android中去掉标题的方法总结
  5. C#将string转换为十六进制
  6. negative binomial(Pascal) distribution —— 负二项式分布(帕斯卡分布)
  7. Linux经常使用的命令(21) - find参数具体解释
  8. 获取浏览器的ip以及省份
  9. 李开复:VC看不上你的五个原因
  10. Jenkins 部署