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 :)