在 Foundation 的显示模式中设置变量 - CakePHP

Set a variable in a Foundation's reveal modal - CakePHP

我正在尝试使用 CakePHP 在显示模式中设置一个变量。 我使用的显示模式是 Zurb Foundation

我必须生成一个代码并显示它。 我有一个带有 generatecode() 函数的 HomeController。 在我的 Home.ctp 中,我有一个带有显示模式的 div(参见基本部分 here) 我还有一个使用该代码生成的 link 按钮:

echo $this->Html->Link('Unlock Link', array('action'=>'unlockpwd'), array('class' => 'button small', 'data-reveal-id' => 'modal_unlockpwd'));

这是我的操作代码:

function unlockpwd() {
        $this->set('code', $this->Function->generatePwdLock());
        $this->redirect($this->referer());
}

而在我的 Home.ctp 中,我只是在显示模式中显示 $code,但出现未定义变量错误。

我认为这是因为我在设置 $code 之前显示了模式。

我该如何解决这个问题?我尝试了 setFlash,它可以工作,但显示模式对用户来说似乎更好。

感谢您的帮助:)

您将 'code' 设置为变量并重定向离开页面,因此变量丢失。解决方案是:

function unlockpwd() {
    $this->Session->write('Code', $this->Function->generatePwdLock());
    $this->redirect($this->referer());
}

您想在哪里看到它:

echo $this->Session->read('Code'); 
$this->Session->delete('Code'); //if you want to show only once