Trying to get property of non-object Nette 2.4 + Doctrine

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

Ahoj, mám takový problém. Nette mi pořád vyhazuje na ostré verzi error log u RegistrationFacade.php:579 trying to get property of non-object. Ale přitom registration je normálně doctrine entita, tak nevím. Ještě mě napadlo, že by to mohlo být tím, že jsem špatně napsal funkci. Spustilo se to z /registration/detail/2012?regId=276&do=removeCheck . Předem díky za rady

 public function removeCheck($id){
        $check = $this->checkFacade->getCheck($id);

       ** $regId = $check->registration->id;**
        $this->em->remove($check);
        $this->em->flush();

        $registration = $this->getRegistration($regId);
        $this->checkStatus($registration,'removeCheck');
    }

    /**
     * @secured
     */
    public function handleRemoveCheck($id, $regId)
    {
        try {
            $this->registrationFacade->removeCheck($id);
            $this->flashMessage('Pozice byla úspěšně smazána', 'success');
        } catch (\Exception $exc) {
            $this->flashMessage($exc->getMessage(), 'danger');
        }
        $this->redirect('this', $regId);
    }
 public function actionDetail($id)
    {
        $this->checks = $this->checkFacade->getChecksByRegistrationIdQuery($id);
        $this->regId = $id;
    }

    public function renderDetail($id)
    {
        $registration = $this->registrationFacade->getRegistration($id);
        $this->template->id = $id;
        $this->template->event = $registration->event->name;
        $this->template->site = $registration->site->name;
    }
Martk
Člen | 661
+
0
-

Jestli používáš metodu find na vrácení entity, tak pokud v databázi neexistuje id, tak vrací null místo entity. Pravděpodobně tvůj případ.