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"
我根据 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"