数据库迁移与填充

创建迁移文件

命令php artisan make:migration create_table_admin
格式最好是create_table_表名,执行命令完毕,会产生一个以时间开头的然后后部分自定义的文件,文件中有个up和down方法,

up用于新增表
down用于删除表,与up相反

迁移结构

Schema::create('admin',function(Blueprint $table){ $table -> increments('id'); $table -> string('account',50)->default('')->comment('账号'); $table -> string('password',250)->default('')->comment('密码'); $table -> string('nickname',5)->default('')->comment('昵称'); $table -> timestamps(); });
Schema::create('这里填写你的表名',function(Blueprint $table){ $table -> increments('id'); //这里是主键自增ID,完全自定义,详情看laravel学院的文档 $table -> string('自定义字段名,如 account',50)->default('')->comment('账号');//自定义 $table -> string('password',250)->default('')->comment('密码');//自定义 $table -> string('nickname',5)->default('')->comment('昵称');//自定义 $table -> timestamps();//会产生两个字段(更新时间和创建时间) });
写好要创建的字段,开始迁移 执行以下命令
php artisan migrate
会提示Migration table created successfully.说明命令迁移成功.到这里迁移完毕

数据填充

这里我使用的是模型工厂方式来填充数据
执行命令,创建Model
php artisan make:model Model/Admin/Admin
这里注意 命名空间 App\Model\Admin\Admin
创建完毕后,执行命令创建填充器
php artisan make:seeder AdminTableSeeder
`
use Illuminate\Database\Seeder;

class AdminTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
//factory函数是插入到数据库,命名空间一定使用你要创建那个表的模型所在的命名空间
factory('App\Model\Admin\Admin')->create();//
}
}

在ModelFactory.php文件中
$factory->define(App\Model\Admin\Admin::class,function(Faker\Generator $fake){
return [
'account' => 'admin',
'password' => Crypt::encrypt(123456),
'nickname' => '超级管理员'
];
});$factory->define(创建表的模型所在的命名空间的类,function(Faker\Generator $fake){ return [ 'account' => 'admin',//可以随机如 $fake->name; 'password' => Crypt::encrypt(123456), 'nickname' => '超级管理员' ]; });
以上代码完毕 可以创建个测试方法测试一下是否能产生数据,
$res = factory(\App\Model\Admin\Admin::class)->make(); dd($res);在测试方法中加上 make是只产生
如果成功 那么执行命令

php artisan make:seed --class=AdminTableSeeder

AdminTableSeeder是只你所创建填充器的名字,一定要指定

你可能感兴趣的:(数据库迁移与填充)