初始化和更新 phtml 中使用的变量。正确的方法是什么?
-
12-12-2019 - |
题
我正在实施报价单。然后我声明了一个模块,在其中定义了一个 phtml 模板,其中包含表单、计算出的价格显示和 javascript/ajax 脚本。
我还定义了一个块:
<?php
class Mine_Quotemodule_Block_Quoteformblock extends Mage_Core_Block_Template
{
public function methodblock()
{
return 'informations de mon block !!';
}
}
?>
和一个控制器
<?php
class Mine_Quotemodule_IndexController extends Mage_Core_Controller_Front_Action
{
public function indexAction()
{
$this->loadLayout();
$this->renderLayout();
}
public function quoteAction()
{
echo 'test mamethode';
}
}
?>
为了能够显示和更新我的报价,我需要使用一些变量。
我想在 indexAction() 中声明和初始化它们(用于默认价格显示),并在 quoteAction() 中更新它们,这将由我的表单脚本调用。
这是好方法吗?
如果在indexAction中声明,如何在quoteAction()和phtml中引用它们?
感谢您的帮助,
亚历克斯
解决方案
全局变量设置使用 Mage::register('variable', $variable)
. 。可以从任何地方调用该变量,然后使用 $_variable = Mage::registry('variable)
.
如果您需要会话变量,可以使用:
Mage::getSingleton('core/session')->setMyVariable('value of variable');
稍后可以使用以下命令调用该变量:
$variable = Mage::getSingleton('core/session')->getMyVariable();
我想说,理想情况下,会话和全局变量是在控制器中设置的。然后您可以在任何地方给他们打电话。
对于使用的变量是视图(.phtml),最好是在块中设置它们。然后您可以使用 $this->getVariable() 调用它们。
private $_variable;
public function getVariable(){
return $_variable
}
public function setVariable(){
...logic...
}