Nachrichten werden nicht übertragen

Hallo zusammen,
ich bin es wieder. Mein aktuelles Problem ist, dass ich im Controller mittels assign eine Nachricht ans Template übergeben möchte:

        if($newPost->getGender() === ''){
            $this->view->assign('msg','Bitte eine Anrede auswählen.');
            $this->view->assign('msgEnglish','Please select a salutation.');
            $this->redirect('Organisations');
        }

Im Template existiert kein msg oder msgEnglish. Was muss ich machen, damit ich die Nachricht ins Template anzeigen kann?

Vielen Dank.

LG Mark

Hi,

Du versuchst hier Werte an ein Template zu übergeben, welches nicht abgerufen wird, da du via $this->redirect('Organisations') im selben Zuge ein Redirect auf eine andere Action machst. Du musst also in OrganisationsAction() deine Werte ins Template übergeben.

Tip:
Du kannst die Werte z.B. so in eine andere Action übergeben:

$msg = 'Bitte eine Anrede auswählen.';
$msgEnglish = 'Please select a salutation.';

$this->redirect('Organisations', null, null, array('msg' => $msg, 'msgEnglish' => $msgEnglish));

Deine OrganisationsAction() könnte in diesem Beispiel dann so aussehen:

/**
 * @param string $msg
 * @param string $msgEnglish
 */
public function OrganisationsAction(string $msg = '', string $msgEnglish = '') {
    $this->view->assign('msg', $msg);
    $this->view->assign('msgEnglish', $msgEnglish);
}

Nachtrag:
Du kannst dir mal Flash Messages anschauen:
https://flowframework.readthedocs.io/en/stable/TheDefinitiveGuide/PartIII/ModelViewController.html?highlight=flash#flash-messages

Die musst du nicht extra übergeben und werden auch nach einem redirect im Template ausgespielt.

Gruß,
Rene

1 Like