这个视频我们可以编辑一下之前创建的 create_movies_table 这个 migration 。在它的里面,已经用到了 Schema 的 create 方法去创建了一个叫做 movies 的数据表 ...
下面我们再去给这个数据表添加一些字段 ...
另起一行 ... 创建一个电影标题字段 ... $table ... 可以使用 string 方法去创建一下这个字符串的字段 ...
$table->string('movie_title');
再去添加一个电影内容字段 ... 这个字段可以使用文本类型 ... 所以用的是 text 方法 ...
$table->text('movie_content');
然后再添加一个存储电影制作成本的字段 ... 可以把它设置成整数类型的字段 ... 添加整数类型的字段用的是 integer 方法 ...
这个字段里的整数必须是正数 ... 所以可以加上一个 unsigned() 方法 ..
$table->integer('movie_budget')->unsigned();
再添加一个日期类型的字段,存储电影的发布日期 ... 这里可以使用 date 方法去添加日期类型的字段 .. 可以给它设置一下默认的值 ... 用 default 这个方法 ...
$table->date('movie_date')->default('0000-00-00');
在这个 movies 数据表里,主键是用 increments 方法添加的 movie_id 这个字段 ... 也可以使用 primary 方法手工去设置一下主键。
$table->primary('movie_id');
最后再使用 timestamps() 这个方法,去添加两个字段 ... created_at 还有 updated_at ... 可以记录一下电影内容的创建还有更新的时间。
$table->timestamps();
reviews
下面,我们再去改造一下 reviews 这个数据表 ... 打开创建这个数据表用到的 migration ... create_reviews_table ...
这里已经添加了几个字段 .. id 是这个表的主键 ... 我们把它改成 review_id ...
timestamps 这个方法会自动添加两个 TIMESTAMP 类型的字段,created_at 还有 updated_at ,可以用它们存储创建电影评论的日期,还有更新的日期 ...
再去添加两个字段 ...
先添加一个可以存储电影评分的整数类型的字段 .. 这个字段的值也应该是正数 .. 所以应用一个 unsigned 方法 ...
$table->integer('review_rate')->unsigned();
评论的内容可以放在一个文本类型的字段里面。
$table->text('review_content');
我们要在 reviews 还有 movies 表之间创建一个关联 ... 可以在 reviews 表里面添加一个 movie_id 字段 ... 在发布电影评论的时候,可以指定跟这条评论对应的电影的 id 号。
这个在 reviews 表里面的 movie_id 字段,可以作为 reviews 表,还有 movies 表之间的关联。
这个字段的类型是整数 ... 并且是正数 ...
$table->integer('movie_id')->unsigned();
保存 ...
migrate
准备好要创建的数据表以后,我们可以去运行 migrate ... 不过在这之前,可以先去重置一下 ...
php artisan migrate:reset
这样会重置所有之前执行的 migrate ....
再回到项目 ... 这里只保留创建 movies 表,还有 reviews 表的 migration ... 把其它的都删除掉 ...
再回到命令行 ... 重新去执行一下 migrate 命令
php artisan migrate
预览
打开应用的数据库 ... 在这里,你会看到 movies 表,还有 reviews 表 ..
表里面,会包含我们给它们添加的字段。