[技巧分享] Laravel 的 migration 命令常用参数

Laravel

对于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 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://tutsforweb.com/make-migration-co...

译文地址:https://learnku.com/laravel/t/27936

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!