我在application.ini中有这些行
如何读取user在我的控制器
resources.doctrine.dbal.connections.default.parameters.driver = "pdo_mysql"
resources.doctrine.dbal.connections.default.parameters.dbname = "zc"
resources.doctrine.dbal.connections.default.parameters.host = "localhost"
resources.doctrine.dbal.connections.default.parameters.port = 3306
resources.doctrine.dbal.connections.default.parameters.user = "root"
resources.doctrine.dbal.connections.default.parameters.password = "123456"
我使用这段代码,但它返回null
$bootstrap = Zend_Controller_Front::getInstance()->getParam('bootstrap');
$user = $bootstrap->getOption('user');
var_dump($user);
编辑:如何读取所有连接选项?
我觉得你应该用
$this->getInvokeArgs('bootstrap');
有关更多信息,请参阅手册中的本章。
$conf = $bootstrap->getOption('resources');
$dbConf = $conf['doctrine']['dbal']['connections']['default']['parameters'];
不如这样写:
$config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', APPLICATION_ENV);
$connectionParams = $config->resources->doctrine->connections;
或者在Bootstrap
期间,在Bootstrap
或Zend_Registry
中创建并保存此$config
对象,以便稍后在控制器中检索。
这是你的控制器。
$bootstrap = $this->getInvokeArg('bootstrap');
$appinidata = $bootstrap->getOptions();
$user=$appinidata['resources']['doctrine']['dbal']['connections']['default']['parameters'] ['user'];
这应该打印"root"。
print_r($user);
要获取Doctrine容器资源,只需使用:
$bootstrap = $this->getInvokeArg('bootstrap');
$doctrine = $bootstrap->getResource('doctrine');
从那里您可以深入到默认连接的用户名(如果需要,您可以指定连接,只需在调用getConnection时传递连接的名称):
$username = $doctrine->getConnection()->getUsername();
在这种情况下,您应该使用Zend_Config_Ini class
$config = new Zend_Config_Ini('/path/to/config.ini','staging',$options);
第二个参数是一个section在INI文件应该被加载;第三个参数是允许修改加载文件的关键。
你可以这样输出value user:
$config->resources->doctrine->dbal->connections->default->parameters->user;
您可以在index.php的公共文件夹中使用set方法设置任何变量,如下所示我们
$config = 'test'; Zend_Registry:设置("配置"配置美元);
一旦变量被设置,那么你可以通过以下方法进入任何控制器/模型
Zend_Registry:获得("配置");
希望它有帮助!!