我的插入物有一个奇怪的问题。所以我的迁移是:
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但是当我尝试保存到此表时,我得到了sql错误: SQLSTATE [42S02]:未找到基表或视图:1146表' photo_categories'不存在。那么为什么我的save()方法得到表photo_categories而不是photo_category。请帮帮我。
答案 0 :(得分:1)
Laravel中数据库表的命名约定是复数。因此,Laravel假设您的模型名称PhotoCategory
表示您的表名为photo_categories
。您有两种选择:
photo_categories
通过添加:
在模型中指定表名 protected $table = 'photo_category';
答案 1 :(得分:0)
确保使用模型中的不同名称命名控制器,因为这可能会带来一些问题,因为两者都是类,并且两者具有相同的名称。 此外,您的Model类表示您的数据库表,因此您需要将表名指定为
protected $table = 'photo_category';