2015-01-18 4 views
1

У меня есть странная проблема с моей вставкой. Так что моя миграция:Получить неверную таблицу при попытке вставить

class CreatePhotoCategoryTable extends Migration { 
public function up() 
{ 
    Schema::create('photo_category',function($table){ 
     $table->increments('id'); 
     $table->string('name'); 
     $table->timestamps(); 
    }); 
} 
public function down() 
{ 
    Schema::drop('photo_category'); 
} 

} 

Моя модель:

class PhotoCategory extends Eloquent { 
protected $fillable = array('name'); 
public static $rules = array(
    'name'   => 'required', 
); 
} 

И мой контроллер:

class PhotoCategory extends BaseController{ 
public function getAddPage(){ 
    return View::make('admin.photo_category.addPhotoCategory'); 
} 
public function postCreate(){ 
    $validator = Validator::make(Input::all(), \PhotoCategory::$rules); 
    if($validator->passes()){ 
     $oPhotoCategory = new \PhotoCategory(); 
     $oPhotoCategory->name = Input::get('name'); 
     $oPhotoCategory->save(); 
     $iLastId = $oPhotoCategory->id; 
     return Redirect::to('/administration/category_photo/edit/'.$iLastId) 
      ->with('message_succes','Succes'); 
    } 
    return Redirect::to('/administration/category_photo/add') 
     ->with('message_error','Error') 
     ->withErrors($validator) 
     ->withInput(); 
} 

Выраженное мой стол в базе данных называется photo_category, но когда я попытался сохранить в эту таблицу Я получаю ошибку en sql: SQLSTATE [42S02]: Базовая таблица или просмотр не найдены: 1146 Таблица 'photo_categories' не существует. Итак, почему мой метод save() получает таблицу photo_categories вместо photo_category. Пожалуйста, помогите мне.

ответ

1

Соглашение об именах для таблиц базы данных в Laravel является множественным. Поэтому Laravel предполагает от вашего имени модели PhotoCategory, что ваш стол называется photo_categories. У вас есть два варианта:

  1. Изменить название вашей таблицы в photo_categories
  2. Укажите имя таблицы в модели, добавив:

    protected $table = 'photo_category';

+0

THx мужчин;), interersting конвенции –

+0

рад, что я мог бы помочь. Пожалуйста, рассмотрите [принятие] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) этот ответ, чтобы пометить ваш вопрос как решенный. – lukasgeiter

0

Убедитесь, что вы называете ваш контроллеры с разными именами из ваших моделей, так как это может вызвать некоторые проблемы, поскольку оба являются классами, и оба имеют одно и то же имя. А также ваш класс модели представляет таблицу базы данных, так что вы должны указать ваше имя таблицы

protected $table = 'photo_category';

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