Artisan migrate:make --create命令未能创建Schema::create()

3
我正在跟随Dayle Rees在Laravel 4中处理迁移的教程进行学习。(请查看链接以了解我的问题)。我正在尝试使用Artisan创建一些迁移文件。我在段落开头处"我们只需运行...",后面是一个示例Artisan命令:
php artisan migrate:make create_users --create --table=users

...接着是结果代码(片段):

public function up()
{
    Schema::create('users', function(Blueprint $table)
    {
        $table->increments('id');
        $table->timestamps();
    });
}

但是当我运行相同的Artisan命令时,我没有得到那个。相反,我得到了这个:
public function up()
{
    Schema::table('users', function(Blueprint $table)
    {
        //
    });
}

为什么?

也许这是 Laravel 的稍后版本,与 Rees 先生在教程中使用的版本有所不同,但最令人烦恼/困惑的事情是,artisan 命令 --create 似乎无法正常工作,即输出结果不正确。

Schema::table()

替代

Schema::create()

你说得对。我也遇到了这个问题。正如你所知,将“table”更改为“create”可以解决任何由此引起的问题。 - James Binford
谢谢,詹姆斯。很高兴听到我没有忽略什么。稍微有点烦人,希望他们能解决这个问题。 - Inigo
1
FYI,詹姆斯,我已经找到了问题的根源-请看下面的答案。 - Inigo
太棒了。谢谢你! - James Binford
1个回答

14

好的,对于任何阅读此内容的人,我已经找到了答案。我认为 Dayle Rees 的教程中可能存在错误。按照 文档 中的指示,artisan 命令应该是:

php artisan migrate:make create_users_table --create=users
所以这个故事的寓意是,在进行迁移以创建表时,相关命令应该是:
php artisan migrate:make class_name --create=table_name

修改时,命令为:

php artisan migrate:make class_name --table=table_name

它是 php artisan make:migration create_users_table --create=users,而不是 migration:make。 - user8472773
是的,他们在Laravel 5中进行了更改。对于Laravel 4(这个问题涉及到的版本),命令是migrate:make - Inigo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接