[技巧分享] 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 方法中,你还可以指定需要删除的更改列。

这是一个可以在项目中使用的简单技巧。


Practice makes perfect.

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

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

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

社区文档:

将托管在 packagist.org 和 github.com 的扩展包使用国内 CDN 加速
GitHub Laravel 扩展包 TOP 250
速查表方便快速查询框架功能,支持手机访问,支持中英文版本
Laravel 中文文档,由社区用户翻译和维护,将会保持一直更新
此文档的目的,就是为了提高技术团队的凝聚力、一致性和生产效率。
开发环境的部署,开发者工具的选择,适用于 Mac 和 Windows。
浓缩过后的精华
Laravel Nova 后台管理面板文档的中文翻译
Lumen 中文文档,由社区用户翻译和维护,将会保持一直更新
Laravel 下知名扩展包 Dingo API 的中文文档,Laravel API 开发必知必会