Я хочу удалить зарегистрированный но этот счет у него есть уже зарегистрированные сделки, которые присоединены с этим счетом, и в ней encutran сделки, уже добавленные
, сделав названный удаления, я имею в драйвере Счетов:
public function destroy($id)
{
Cuenta::find($id)->delete();
return redirect()->route('cuentas.index');
}
и миграции, что у меня есть звук: Таблица ты считаешь:
public function up()
{
Schema::create('cuentas', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('Nombre');
$table->string('Descripcion');
$table->integer('Interes');
$table->timestamps();
});
}
таблица сделки:
public function up()
{
Schema::create('transaccions', function (Blueprint $table) {
$table->increments('id');
$table->integer('Cantidad');
$table->string('descripcion');
$table->bigInteger('cuenta_id')->unsigned();
$table->foreign('cuenta_id')
->references('id')
->on('cuentas')
->onDelete('cascade');
$table->timestamps();
});
}
и я хочу удалить счет с включенными сделками, но дав удалять ему, он дает мне ошибку
SQLSTATE [23000]: Integrity constraint violation: 1451 Cannot delete or update в parent row: в foreign key constraint fails (creditex
.transaccions
, CONSTRAINT transaccions_cuenta_id_foreign
FOREIGN KEY (cuenta_id
) REFERENCES cuentas
(id
)) (SQL: delete from cuentas
where id
= 1)
Ты не будешь мочь удалять, так как эта включила чужеземный ключ, если из всех форм ты хочешь сделать это, будешь должен дезактивировать в тебе BD
.
SET FOREIGN_KEY_CHECKS = 0;
Так ты dejarГЎ удалять их, другая форма - используя CASCADE
, это удаляет все реестры, которые зависят от той, которая ты будешь удалять
$table->foreign('user_id')
->references('id')->on('users')
->onDelete('cascade');