如何在控制器操作中获取资源? 资源数据库已在application.ini中初始化。
class IndexController extends Zend_Controller_Action
{
public function init()
{
/* Initialize action controller here */
}
public function indexAction()
{
// I want db resource here
}
}
答案 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');
}
}