如何在控制器动作中获取资源?

时间:2010-05-28 14:09:56

标签: zend-framework

如何在控制器操作中获取资源? 资源数据库已在application.ini中初始化。

class IndexController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    }

    public function indexAction()
    {
        // I want db resource here
    }
}

3 个答案:

答案 0 :(得分:4)

试试看是否有效:

$this->getFrontController()->getParam('bootstrap')->getResource('db') 

答案 1 :(得分:1)

  

更新:虽然此解决方案有效,但建议   实践。请阅读评论    @Brian M。在下面。

您可以使用Zend_Registry。初始化引导程序中的数据库连接并将其存储在注册表中:

// set up the database handler
// (...)
Zend_Registry::set('dbh', $dbh);

然后你可以从其他任何地方退休:

$dbh = Zend_Registry::get('dbh');

答案 2 :(得分:0)

在回答a similar question on Nabble时,Matthew Weier O'Phinney(Zend Framework 1先生)建议使用这种形式:

$this->getInvokeArg('bootstrap')->getResource('db'); 

所以,在这个问题的背景下,它会是这样的:

class IndexController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    }

    public function indexAction()
    {
        // db resource here
        $db = $this->getInvokeArg('bootstrap')->getResource('db'); 
    }
}