請有人幫我解決這個問題。我是laravel的新手,現在我需要將選擇標記的數組存儲到mysql,並且我有這個erorr。 SQLSTATE [42S02]:未找到基本表或視圖:1146'cmsystem.account_code_project'不存在(SQL:從account_code_project
中選擇account_code_ac_id
,其中project_pj_id
= 1)。似乎它與使用belongsToMany()函數有關。我應該在這裏做什麼是我的代碼。SQLSTATE [42S02]:未找到基本表或視圖(belongsToMany)Laravel 5.4
這裏的project_table
//project table
Schema::create('projects', function(Blueprint $table)
{
$table->increments('pj_id');
$table->string('pj_title',100);
$table->string('pj_description');
});
這裏的accountcodes表
//codes
Schema::create('accountcodes', function(Blueprint $table)
{
$table->increments('ac_id');
$table->string('ac_code',100)->nullable();
$table->string('ac_description')->nullable();
});
這裏的中間表的兩個表
//intermediate table
Schema::create('code_project', function(Blueprint $table){
$table->increments('id');
$table->integer('project_id')->unsigned();
$table->foreign('project_id')->references('pj_id')->on('projects');
$table->integer('account_id')->unsigned();
$table->foreign('account_id')->references('ac_id')->on('accountcodes');
});
項目控制器
//ProjectController
public function store(Request $request)
{
$this->validate($request,[
'pj_title'=>'required',
'pj_description'=>'required',
]);
$project = new project;
$project->pj_title = $request->pj_title;
$project->pj_description = $request->pj_description;
$project->save();
$project->accounts()->sync($request->accounts, false);
return redirect('/projectlist');
}
個
模型
//AccountCode
protected $table = 'accountcodes';
public function projects()
{
return $this->belongsToMany('App\Project');
}
//Project
protected $table = 'projects';
public function accounts()
{
return $this->belongsToMany('App\AccountCode');
}
謝謝。
我應該需要指定它在我的兩個模型來解決呢?我的意思是這樣的 返回$ this-> belongsToMany('App \ Project','code_project'); return $ this-> belongsToMany('App \ AccountCode','code_project'); – kalawadei
@ClaudeDizon是的,無論你需要使用該數據透視表。問題是你沒有遵循命名約定。 – apokryfos
在belongsToMany標記中添加「code_project」不會改變任何內容,所以我所做的是將表名更改爲「accountcode_project」。仍然錯誤仍然是一樣的。我沒有看到任何錯誤。我該怎麼辦?對不起,謝謝。 – kalawadei