Laravel 4.2 和 migrate make 不起作用

Laravel 4.2 and migrate make not working

我根据 Laravel 4 一书创建了一个项目。

因此,我在 app/models/ - Cat.php 和 Breed.php 中创建了两个文件,内容如下:

Cat.php

<?php

class Cat extends Eloquent {
    protected $fillable = array('name','date_of_birth','breed_id');

    public function breed() {
        return $this->belongsTo('Breed');
    }
}

和Breed.php

<?php

class Breed extends Eloquent {
    public $timestamps = false;

    public function cats()
    {
        return $this->hasMany('Cat');
    }
}

之后,我使用命令 php artisan migration:make create_cats_and_breeds_table

好的,应该在app/database/migrations中出现文件。是的。

但是,它的内容和书中的不一样...

在书中:

<?php

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

class AddCatsAndBreedsTable extends Migration {

    public function up()
    {
        Schema::create('cats', function($table)
        {
            $table->increments('id');
            $table->string('name');
            $table->date('date_of_birth');
            $table->integer('breed_id')->nullable();
            $table->timestamps();
        })
        Schema::create('breeds', function($table)
        {
            $table->increments('id');
            $table->string('name');
        })
    }

    public function down()
    {
        Schema::drop('cats');
        Schema::drop('breeds');
    }

}

我的代码:

<?php

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

class AddCatsAndBreedsTable extends Migration {

    public function up()
    {
        //
    }

    public function down()
    {
        //
    }

}

发生什么事了?

migration:make 命令对您的模型一无所知。它只是创建一个存根,您需要在其中填充表的列定义。

https://github.com/laracasts/Laravel-4-Generators

提供一些额外的 artisan 命令,您可以使用这些命令来指定您的字段以生成迁移文件。

php artisan generate:migration create_posts_table --fields="title:string, body:text"