id = null; $this->setView('edit'); // <--- Zde přikážeme Nette použít edit.latte } public function actionEdit(int $id): void { $this->id = $id; $zakaznik = $this->zakaznikFacade->getById($id); if (!$zakaznik) { $this->flashMessage('Zákazník nebyl nalezen.', 'danger'); $this->redirect('Zakaznik:default'); } $this['zakaznikForm']->setDefaults($zakaznik->toArray()); } public function renderEdit(?int $id = null): void { $this->template->isEdit = (bool) $this->id; } public function renderNew(): void { $this->template->isEdit = false; } protected function createComponentZakaznikForm(): Form { $form = new Form; // Základní údaje $form->addText('PRIJMENI', 'Příjmení / Název firmy:') ->setRequired('Zadejte příjmení nebo název firmy.'); $form->addText('JMENO', 'Jméno:'); // IČO / DIČ $form->addText('IC', 'IČ:') ->setMaxLength(8); $form->addText('DIC', 'DIČ:') ->setMaxLength(10); // Adresa $form->addText('ULICE', 'Ulice a ČP:'); $form->addText('MESTO', 'Město:'); $form->addText('PSC', 'PSČ:') ->setMaxLength(5); // Kontaktní údaje $form->addText('TELEFON', 'Telefon:'); $form->addEmail('EMAIL', 'E-mail:'); // Příznak aktivity $form->addCheckbox('AKTIVNI', 'Aktivní zákazník') ->setDefaultValue(true); $form->addSubmit('save', 'Uložit zákazníka') ->setHtmlAttribute('class', 'btn btn-primary'); $form->onSuccess[] = [$this, 'zakaznikFormSucceeded']; return $form; } public function zakaznikFormSucceeded(Form $form, \stdClass $data): void { $firmaId = $this->getUser()->getIdentity()->firma_id; $this->zakaznikFacade->save((array) $data, $this->id, $firmaId); $this->flashMessage( $this->id ? 'Údaje zákazníka byly upraveny.' : 'Nový zákazník byl úspěšně vytvořen.', 'success' ); $this->redirect('Zakaznik:default'); } }