flashmessage v komponente / controle

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

zdravim prave jsem prenesl jeden projekt na mac os x a pokud mam nekde pouzito v controlu

$this->flashMessage("error");

napriklad tak pri nacitani stranky mi se mi hodi hlaska ze headers jiz byli poslany…
tak bych se rad zeptal zda je tohle normalni chovani zda v controle nemuzu pouzivat flashmessage nebo jsem nekde neco prehlednul.

Editoval awsickness (14. 10. 2011 22:17)

Filip Procházka
Moderator | 4668
+
0
-

Pokud se během vykreslování šablony snažíš poslat flashMessage, tak ti to logicky nemůže fungovat, protože ty využívají Ssssion, které jdou zapisovat, jenom před odesláním výstupu.

awsickness
Člen | 98
+
0
-

takze pokud mam neco jako
{control form}

a v te controle mam callback na odeslani formulare a vnem nastavuji flash kdyz se neco nepovede tak to nejde ?

nebo je na to nejaky postup jak tohle udelat

public function editFormSubmitted(Form $form) {
 $this->flashMessage($message);
 $this->redirect($target, $params);
}

neco takoveho delam pri odeslani formulare

Filip Procházka
Moderator | 4668
+
0
-

Vidím to spíš na problém v připojování komponent. Nemáš nějak zprzněno vytváření těch komponent? Nemáš to v render, nebo tak?

awsickness
Člen | 98
+
0
-

tak radsi postnu trosku vice kodu

{block content}
{control editForm}
{/block}

c presenteru mam

protected function createComponentEditForm() {

		return new \EditControl(self::ENTITY);
	}

v controle mam

protected function createComponentEditForm() {
 $form = new Form().....
$form->onSuccess[] = callback($this, "editFormSubmitted");
}

a v te editForm .. mam kontrolu a pokud neprojde chci nastavit flash a redirect.

mozna jsem neco nepochytil jak se delaji controly ale pro me je to zahada ze to hazi tuto chybu.