[技巧分享] Laravel 的 migration 命令常用参数
对于Laravel新手来说,这是一个快速的小技巧。artisan命令 make:migration
接受可选参数 -create
和 -table
。这些参数允许你改变创建生成迁移文件的存根。让我们来看看差异。
简单的迁移命令
你可以在不带有任何参数的情况下运行迁移命令来创建一个简单的迁移文件,让我们创建一个 posts
表。
php artisan make:migration create_posts_table
这个文件输出一个简单的迁移文件,下面的输出只是一个没有任何附加数据的类。
class CreatePostsTable extends Migration
{
/**
* 运行迁移
*
* @return void
*/
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
});
}
/**
* 回滚迁移
*
* @return void
*/
public function down()
{
Schema::dropIfExists('posts');
}
}
参数 -create
Create 参数允许你指定表的名称,如果你使用 Laravel 约定,它将使用迁移名称中的中间名称。与 create_posts_table
类似,它为 posts
表创建迁移文件。所以,如果你想创建一个新的表,但是名称与 Laravel 约定的名称不同,则你可以指定一个 -create
参数。
php artisan make:migration create_threads_table --create=replies
上面的命令会创建一个名为 create_threads_table
的迁移文件,但是表名为 replies
。
这是上面生成类的内容。
class CreateThreadsTable extends Migration
{
/**
* 运行迁移
*
* @return void
*/
public function up()
{
Schema::create('replies', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
});
}
/**
* 回滚迁移
*
* @return void
*/
public function down()
{
Schema::dropIfExists('replies');
}
}
参数 -table
Table 参数允许你生成一个用于更改表的迁移文件,它通常用于向已存在的表中添加列。我们在 -table
参数中传递表的名称,该参数指定要更改的表。让我们运行这条命令向 users 表中添加一个 admin 列。下面的命令是 Laravel 社区使用最多的约定。
php artisan make:migration add_admin_field_to_users_table --table=users
上面的命令会创建以下内容的类。
class AddAdminFieldToUsersTable extends Migration
{
/**
* 运行迁移
*
* @return void
*/
public function up()
{
Schema::table('users', function (Blueprint $table) {
//
});
}
/**
* 回滚迁移
*
* @return void
*/
public function down()
{
Schema::table('users', function (Blueprint $table) {
//
});
}
}
在这种情况下,Laravel 没有提供很多的帮助,我们必须添加列的名称或要更改的内容。在 down
方法中,你还可以指定需要删除的更改列。
这是一个可以在项目中使用的简单技巧。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。