Ich habe ein 'Rollen' Tabelle:Wie lösche ich bei Kaskade in Laravel?
$table->increments('id');
$table->string('name')->unique();
$table->text('description')->nullable();
und einen Tisch 'Roles_Users':
$table->increments('id');
$table->integer('role_id')->unsigned()->index()->foreign()->references("id")->on("roles")->onDelete("cascade");
$table->integer('user_id')->unsigned()->index()->foreign()->references("id")->on("users")->onDelete("cascade");
Wenn ich eine solche Linie auszuführen:
Role::where('name','someString')->delete();
nur die zugehörige Zeile in Die Rolle Tabelle wird gelöscht, und verwandte Zeilen in der Roles_Users-Tabelle sind nicht. Was ist die Lösung?
Um diese Art der Sache, ziehe ich es wirklich die Fremdschlüssel zu erstellen und „Cascade“ dann. Sie erzielen eine bessere Leistung. Wenn Sie beispielsweise Datensätze direkt über SQL löschen oder in einer anderen App auf Ihre Datenbank zugreifen müssen, behalten Ihre Daten ihre Integrität. –