Zend框架谈话。我知道:
"When referring to configuration parameters within a script,
you'll prefix it with $this->config and converting the periods
to right-facing arrows"
问题但是,当我尝试回复“$ this-> config-> website-> url;”时我没有输出。
如果我尝试使用“$ this-> config [website] [url]”,我会收到正确的输出。
我错在哪里?
我有:
我的引导类:
[..]
protected function _initConfig()
{
$config =$this->getOptions();// contents of config file
Zend_Registry::set('config', $config);
return $config;
}
protected function _initAction()
{
Zend_Controller_Action_HelperBroker::addPath(APPLICATION_PATH."\My\Helper",'My_Action_Helper');
Zend_Controller_Action_HelperBroker::getStaticHelper('Initializer');
}
我的 My_Action_Helper_Initializer :
class My_Action_Helper_Initializer extends Zend_Controller_Action_Helper_Abstract
{
public function init()
{
$controller=$this->getActionController();
$controller->config=Zend_registry::get('config');
}
}
我的 IndexController :
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
echo $this->config[website][url];//it outputs the correct value
echo $this->config->website->url;//NO OUTPUT!
}
}
感谢
卢卡
答案 0 :(得分:3)
给它一个旋转:)
Bootstrap:
protected function _initConfig(){
$config = new Zend_Config($this->getOptions(), true);
Zend_Registry::set('config', $config);
return $config;
}
您想在哪里使用它:
$config = Zend_Registry::get('config');
您将数组存储在选项中而不是对象(Zend_Config)
答案 1 :(得分:0)
使用时
$this->config[website][url];
您将配置参数作为数组访问,这对您有用,请使用它吗?
使用时
$this->config->website->url;
您访问配置就好像它是一个对象,这是失败的,所以不要使用它?
如果它以一种方式工作,那么问题是什么,是否需要对配置参数使用对象表示法?