Automatické uložení času po odeslání formuláře

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

Ahoj,
na webu mám formulář pro přidávání příspěvků do diskuze. Chtěl bych, aby se mě automaticky uložil datum i čas odeslání příspěvku (odeslání formuláře). Mám to převedené i do AJAXu. Jenže když tam přidám řádek pro uložení času, tak se mě formulář vůbec neodešle (po jeho smazání to zase funguje). Kde bych mohl mít chybu prosím?

public function diskuzeFormSubmitted(Form $form) {
        $this->context->createDiskuze()->insert(array(
            'datum' => new DateTime(),
            'autor' => $form->values->autor,
            'text' => $form->values->text
        ));
        $this->flashMessage('Reakce přidána.', 'success');

        if (!$this->isAjax()) {
            $this->redirect('default');
        } else {
            $form->setValues(array(), TRUE);
            $this->invalidateControl('form');
            $this->invalidateControl('data');
        }
    }
llook
Člen | 407
+
0
-

Zkus

  • Kouknout do složky /log.
  • Přesměrovávat pouze při úspěchu (viz návratovka insert()).
  • Na chvíli vypnout ajax, abys viděl, co se na stránce děje.
22
Člen | 1478
+
0
-

@.:M@rt!n:. nějaký důvod, proč to nenecháš udělat databázi samotnou přes CURRENT_TIMESTAMP

.:M@rt!n:.
Člen | 201
+
0
-

to 22: žádný důvod nemám, ale tvé řešení neznám :)

Jan Mikeš
Člen | 771
+
0
-

22 napsal(a):

@.:M@rt!n:. nějaký důvod, proč to nenecháš udělat databázi samotnou přes CURRENT_TIMESTAMP

To nemuze udelat s datetime, pouze pokud by mel sloupec datoveho typu timestamp, ale to pochybuji ze by se tam snazil narvat new DateTime();

.:M@rt!n:.
Člen | 201
+
0
-

nn sloupec mám ty typu datetime

.:M@rt!n:.
Člen | 201
+
0
-

Tak problém vyřešemn. V hlavičce mě chybělo volání

Nette\DateTime