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.