Neproběhně odeslání formuláře v komponentě

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

Mám komponentu v které vytvářím formulář který vykreslím. Danou komponentu přídam do presenteru

protected function createComponentAddEditBrand()
	{
		$result = $this->addEditBrandFormFactory->create(NULL);
		return $result;
	}

Kod komponenty:

class AddEditBrandForm extends Control
{
	private $brandId = NULL;
	private $brandsRepository = NULL;

	/**
	 * @param int|NULL $brandId
	 * @param BrandsRepository $brandsRepository
	 */
	public function __construct($brandId, BrandsRepository $brandsRepository)
	{
		parent::__construct();
		$this->brandId = $brandId;
		$this->brandsRepository = $brandsRepository;
	}

	public function createComponentAddEditBrandForm() {
		$form = new \Nette\Application\UI\Form();
		$form->addHidden('id', $this->brandId);
		$form->addText('name', 'Značka:')->addRule(Form::FILLED, 'Pole "Značka" je poviné.');
		$form->addTextArea('description', 'Popis');
		$form->addSubmit('save', 'Uložit')->controlPrototype->addClass('btn btn-primary');
		$form->onValidate[] = [$this, 'validateUniqueNameForm'];
		$form->onSuccess[] = [$this, 'addEditBrandFormSucceeded'];

		return $form;
	}

	public function addEditBrandFormSucceeded(\Nette\Application\UI\Form $form)
	{
		Debugger::fireLog("sdf");
		$values = $form->values;
		try {
			if (!isset($values->id)) {
				/**@var Brand $brand * */
				$brand = $this->brandsRepository->createEntity();
				$brand->name = $values->name;
				$brand->description = $values->description;
				$this->brandsRepository->persist($brand);
				$this->presenter->flashMessage('značka pridana', 'success');
			} else {
				// Update
			}
			$this->presenter->redirect('Brand:');
		}catch (UniqueConstraintViolationException $e) {
			$form['name']->addError('Název značky "'.$values->name.'" již existuje. Zadejte prosím jiný název.');
		}
	}

	public function validateUniqueNameForm(\Nette\Application\UI\Form $form)
	{
		$values = $form->getValues();
		$brands = $this->brandsRepository->findBy(['name' => $values->name]);
		if (count($brands) > 0) {
			$form['name']->addError('Název značky "'.$values->name.'" již existuje. Zadejte prosím jiný název.');
		}
	}

	public function render()
	{
		$template = $this->template;
		$template->setFile(__DIR__ . '/AddEditBrandForm.latte');
		$template->render();
	}
}

Když odešlu formulář tak se mi načte stránka znovu ale firelog v metodě addEditBrandFormSucceeded se vůbec neprovede. Kde je problém?
Díky

Machy8
Člen | 59
+
0
-

A validace ti proběhne? Nepřidá se ti náhodou ten error?

Domki
Člen | 310
+
0
-

No nevím jak poznam jestli proběhne.
Rozhodně tam zadávám validní data, a žadnou hlašku to nevypíše, jen se loadne nova stranka vymaže form.
Pokud napíši nazev který jíž existuje tak validace proběhne a hlašku to vypíše.

Domki
Člen | 310
+
0
-

A napadlo me si zkusit změnit redirect. Ono to do succedd metody de jen se firelog přepíše při obnově tak není videt.
Se omlouvám ale už to funguje fajné