1、使用Artisan的 make:migration 命令生成
mission
表的迁移文件 :
php artisan make:migration create_mission_table --create=mission
2、
结构生成器 (Schema)
打开该文件后,有一个
CreateMissionTable
的类,里面有up()和down()两个方法,up方法用于生成数据表,down方法用于删除数据表。按照数据表结构,完善后该类代码如下:
<?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateMissionTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('mission', function (Blueprint $table) { $table->increments('id'); $table->integer('type_id')->unsigned(); // 等同于数据库中的 int 类型 并设置 int 列为 UNSIGNED $table->string('mission_title',100); // 等同于数据库中的 VARCHAR,带一个长度 $table->text('description'); // 等同于数据库中的 TEXT 类型 $table->string('Technology_labels',100)->nullable(); // 允许该列的值为NULL $table->decimal('budget_amount', 10, 2); // 等同于数据库中的DECIMAL类型,带一个精度和范围 $table->integer('deadline')->unsigned(); $table->integer('end_time')->unsigned(); $table->integer('maintain_time')->unsigned(); $table->string('contacts',100); $table->string('phone',11); $table->string('email',50)->nullable(); $table->string('service_address',100)->nullable(); $table->text('remarks')->nullable(); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('mission'); } }
3、执行迁移 在控制台执行以下命令,即可执行迁移文件,生成或更新相应的表。
php artisan migrate
4、
php artisan make:model models\mission 创建数据model
5、
php artisan make:seeder missionTableSeeder
所有框架生成的填充器都位于database/seeders目录:
<?php use Illuminate\Database\Seeder; class missionTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { DB::table('mission')->insert([ 'type_id'=>'1', 'mission_title'=>str_random(16), 'description'=>str_random(20), 'Technology_labels'=>'1,2,3', 'budget_amount'=>1000, 'deadline'=>1475050602, 'end_time'=>1475050602, 'maintain_time'=>1475050602, 'contacts' => str_random(10), 'phone' => str_random(11), 'email' => str_random(10).'@gmail.com', 'remarks' => str_random(10), 'service_address' => str_random(10), ]); } }
6、
php artisan db:seed --class=missionTableSeeder
也可以通过tinker填充
7、添加和修改表的字段
php artisan make:migration add_fields_to_mission_table --table=mission
<?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class AddFieldsToMissionTable extends Migration { /*** Run the migrations.* * @return void */ public function up() { Schema::table('mission', function (Blueprint $table) { // $table->tinyInteger('state')->default(1); $table->tinyInteger('Pnum_limit')->default(1); $table->tinyInteger('Pnum')->nullable(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('mission', function (Blueprint $table) { // }); } }
修改表字段 $table->string('email',60)->nullable()->change(); 转换为可空
php artisan migrate