2015-08-13 4 views
0

Я создаю проект, основанный на книге Начало работы с Laravel 4.Laravel 4,2 и мигрировать делают не работает

Итак, я создаю два файла в приложение/модели/- 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

ОК, и должен возникнуть файл в приложение/база данных/миграции. Это.

Но, его содержание это не так же, как в книге ...

В книге:

<?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() 
    { 
     // 
    } 

} 

Что же случилось?

+0

Код у вас есть только скелет. Введите определение столбца в метод up и запустите команду миграции. – usrNotFound

+0

@CannotFindSymbol, Я знаю, что этот скелет, но который был сгенерирован командой. A должно быть создано так, как оно есть в книге. – User002

+0

'php artisan generate: migration create_posts_table --fields =" title: string, body: text "' это может помочь вам чувак. Удачи – usrNotFound

ответ

0

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

обеспечивает некоторые дополнительные команды ремесленника, которые вы можете использовать для конкретных ваших полей для того, чтобы генерировать файлы миграции.

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

migration: make команда ничего не знает о ваших моделях. Он просто создает заглушку, которую вам нужно заполнить определениями столбцов для ваших таблиц.

+0

хммм, но в соответствии с книгой вам должен быть сгенерирован полный код – User002

+0

Какая книга? Либо вы неправильно поняли это, либо книга лежит. Команда Migrate никогда не создавала для вас определения столбцов. Это было бы невозможно - в Eloquent вы не определяете список полей в своих моделях, поэтому он не имеет представления о том, какие атрибуты у вашей модели есть или какие их типы могут быть. Обратите внимание, что вы также не передаете имена моделей команде, так что это еще одна причина, почему это было бы невозможно. –

Смежные вопросы