Aidez-moi s'il vous plaît à m'aider. Je suis nouveau à laravel et maintenant j'ai besoin de stocker un tableau à partir d'une balise de sélection à mysql et j'ai cette erorr. SQLSTATE [42S02]: Table de base ou vue introuvable: 1146 Le tableau 'cmsystem.account_code_project' n'existe pas (SQL: sélectionnez account_code_ac_id
de account_code_project
où project_pj_id
= 1). On dirait que cela a quelque chose à voir avec l'utilisation de belongsToMany() fucntion. Que dois-je faire ici est mon code.SQLSTATE [42S02]: Table de base ou vue non trouvée (belongsToMany) Laravel 5.4
est ici le project_table
//project table
Schema::create('projects', function(Blueprint $table)
{
$table->increments('pj_id');
$table->string('pj_title',100);
$table->string('pj_description');
});
est ici la table accountcodes
//codes
Schema::create('accountcodes', function(Blueprint $table)
{
$table->increments('ac_id');
$table->string('ac_code',100)->nullable();
$table->string('ac_description')->nullable();
});
est ici la table intermédiaire pour les deux tables
//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');
});
Contrôleur de projet
//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');
}
modèles
//AccountCode
protected $table = 'accountcodes';
public function projects()
{
return $this->belongsToMany('App\Project');
}
//Project
protected $table = 'projects';
public function accounts()
{
return $this->belongsToMany('App\AccountCode');
}
Merci.
dois-je besoin de le préciser à la fois de mon modèle? Je veux dire comme ceci return $ this-> belongsToMany ('App \ Project', 'code_project'); return $ this-> belongsToMany ('App \ AccountCode', 'code_project'); – kalawadei
@ClaudeDizon oui, partout où vous avez besoin d'utiliser ce tableau croisé dynamique. Le problème est que vous ne suivez pas les conventions de nommage. – apokryfos
en ajoutant "code_project" sur la balise belongsToMany ne change rien alors ce que j'ai fait c'est que j'ai changé le nom de la table en "accountcode_project". Et toujours l'erreur est toujours la même. Je ne vois aucune erreur à ce sujet. que ferais-je? désolé et merci. – kalawadei