laravel migration创建了不同的模式

时间:2014-04-27 15:22:49

标签: php laravel laravel-4 eloquent

我正在观看来自Laracast标题的教程" Laracast Digging In"第一部分说明如何通过简单的方式使用雄辩。

# app/models/tasks.php
class tasks extends Eloquent{

}

然后继续做  php artisan migration:make create_tasks_table --create --table="tasks"

然后生成一个如下所示的迁移文件。

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateTasksTable extends Migration {

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create("tasks", function(Blueprint $table)
        {
            $table->increments("id"); 
                        $table->timestamps(); 
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop("tasks");
    }

}

虽然我做的完全一样,但我的结果略有不同。

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateTasksTable extends Migration {

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('tasks', function(Blueprint $table)
        {
            //
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('tasks', function(Blueprint $table)
        {
            //
        });
    }

}

正如你所看到的,除了我的方法省略

$table->increments("id"); 
$table->timestamps(); 

此处已将create替换为table

Schema::table('tasks', function(Blueprint $table)
        ^^ is 'create' in the tutorial. 

为什么会发生这种情况。如果我只是忽略这一点并开始学习本教程,我就无法开始工作。而且我不想手动修改它,所以为什么会这样,我该如何解决它。

3 个答案:

答案 0 :(得分:3)

您使用的命令错误

基于Laravel tutorial 用这个:

用于创建表格

php artisan migrate:make create_tasks_table --create=tasks

用于更新表格

php artisan migrate:make create_tasks_table --table=tasks

基本上你需要使用--create--table而不是两者。 当您使用--create时,迁移将使用Schema::create表示迁移将创建表

当您使用--table时,迁移将为Schema::table,表示将更新表格

答案 1 :(得分:2)

使用--table="tableName"(Schema :: table)更新表,或使用--create="tableName"(Schema :: create)创建新表。

答案 2 :(得分:2)

我非常确定您所使用的教程中使用的开发者 JeffreyWay / Laravel -4-发电机。 如果您对Laravel4感到舒服,请忽略发生器并替换表#39;根据您要执行的操作创建或删除。

抱歉我的英文不好