vytvorenie upozornenia, že sa nedá odstrániť riadok v tabuľke

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
majo1
Člen | 103
+
0
-

mariadb..

Zdravím,
mám otázku.

Existuje nejaké jednoduché riešenie, ako oznámiť cez flash, že sa nedá záznam odstrániť, ak je použitý vo vzťahu forign key?
ide mi o to, že nechcem, aby sa pri tomto probléme zobrazovala biela stránka (production) alebo tracy (debug mode)

SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`nitransform`.`reservations`, CONSTRAINT `fk_reservation_customer1` FOREIGN KEY (`customer_idcustomer`) REFERENCES `customers` (`idcustomer`) ON DELETE NO ACTION ON UPDATE NO ACTION)

Chcelo by to nejak upraviť túto metódu

public function actionRemove($id)
{
    $this->reservationManager->removeReservation($id);
    $this->flashMessage('Rezervácia bola úspešne odstránená');
    $this->redirect(':Reservation:default');
}

try, catch?

Ďakujem

Editoval majo1 (26. 2. 2016 15:15)

CZechBoY
Člen | 3608
+
0
-

Jo try catch, zachytit DriverException a zkontrolovat kod chyby.

majo1
Člen | 103
+
0
-

jo!
spravil som to takto:

try {
    $this->customersManager->removeCustomer($id);
    $this->flashMessage('Zákazník bol úspešne odstránený');
    $this->redirect(':Customers:default');
} catch (ForeignKeyConstraintViolationException $ex) {
    $this->flashMessage('neda sa !');
    $this->redirect(':Customers:default');

}

dakujem :)