我第一次学习拉威尔的外键..当我将表单上的数据插入到表中时,出现此消息错误。我想我的桌子没问题。你能告诉我怎么解决这个问题吗?
控制器:
public function tambah(Request $request){
$a = new Admin;
$this->validate($request, ['nama'=>'required|unique:ab']);
$a->id = $request->id;
$a->nama = $request->nama;
$a->save();
return redirect()->to('admin/data_desa')->with('success','Data berhasil ditambahkan');
}
}表:
class CreateDesasTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
//
Schema::dropIfExist('desas');
Schema::create('desas', function(Blueprint $table){
$table->increments('id');
$table->string('nama');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
Schema::dropIfExist('desas');
}
}路由:
Route::group(['middleware' => 'web'], function(){
Route::group(['prefix' => 'tanitani'], function(){
Route::get('admin', 'AdminController@index');
Route::get('admin/data_desa','AdminController@tampil');
Route::post('admin/data_desa', 'AdminController@tambah');发布于 2017-12-07 23:19:59
您必须覆盖Admin模型中的表名,因为您具有不同的表名。
为什么?
因为通过传送,Laravel将假设表名为admins。
因此,将这一行添加到您的模型中:
protected $table = 'desas';发布于 2017-12-07 23:54:31
看起来您并没有使用laravel雄辩的模型约定。
您确定在控制器中保存desas数据时需要使用模型Admin吗?
如果答案为true,请使用以下命令更新model Admin
protected $table = 'desas';Recommendation:尝试在模型和数据库表之间使用相同的名称约定。
有关详细信息,请参阅https://laravel.com/docs/5.4/eloquent#eloquent-model-conventions。
继续之前的推荐文档:
发布于 2019-01-30 23:25:52
我刚刚遇到这个问题,只需检查迁移文件,当我搜索时,表名需要是复数:
App\post::all();
Table 'laravel.posts' doesn't exist (SQL: select * * from `posts`)'因此,更改create it all and make:migration create_posts_table,运行命令并迁移。然后:
App\posts::all();这对我很管用。
https://stackoverflow.com/questions/47698155
复制相似问题