Laravel 4.2和迁移不起作用

时间:2015-08-13 08:58:48

标签: php laravel laravel-4 eloquent laravel-migrations

我根据“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()
    {
        //
    }

}

发生了什么事?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

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