Ich habe einen Fehler mit meiner App, es sieht alles gut aus, aber erstellt eine falsche Abfrage, aber ich habe meine Tabellen und Modelle richtig, im Grunde habe ich eine Registrierung eines Benutzers kann mehrere Regionen und Branchen/Gebiete auswählen. Mein Fehler ist:Erstellen von Datensätzen mit Beziehungen zwischen mehreren Regionen und Branchen
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'hjobs.region_user' doesn't exist (SQL: select `region_id` from `region_user` where `user_id` is null)
Modell Benutzer:
public function regionsToWork(){
return $this->belongsToMany(Region::class);
}
public function industriesToWork(){
return $this->belongsToMany(Industry::class);
}
AuthController:
$user = new User();
$user->name = $data['name'];
...
$user->regionsToWork()->sync($data['region'], false);
$user->industriesToWork()->sync($data['industry'], false);
$user->save();
Tables DB: USER:
-id;
-email
...
user_industry:
id;
user_id;
industry_id;
user_region:
id;
user_id;
region_id;
Migrations user_region_table_creation
Schema::create('user_region', function($table){
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users');
$table->integer('region_id')->unsigned();
$table->foreign('region_id')->references('id')->on('regions');
});
user_industry_table_creation
Schema::create('user_industry', function($table){
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users');
$table->integer('industry_id')->unsigned();
$table->foreign('industry_id')->references('id')->on('industries');
});
sorry, für letzte Antwort, jetzt mir diese Fehlermeldung „SQLSTATE schenkt [23000]: Integrität Einschränkungsverletzung: 1048 Spalte ' user_id 'darf nicht null sein (SQL: Einfügen in 'user_region' (' region_id', 'user_id') Werte (54,))" –
Es bedeutet, dass Sie keine user_id übergeben, was ein separates Problem ist, vielleicht synchronisieren Sie NACH dem Speichern Der Benutzer hat also eine ID zu verwenden? Auf der positiven Seite bedeutet es, dass es jetzt erfolgreich die richtige Tabelle verwendet. –
Ihr Recht, ich habe nur die -> Sync-Methoden nach dem Speichern() aktualisiert, und funktioniert gut, danke –