Как получить ресурс в действии контроллера? - PullRequest
3 голосов
/ 28 мая 2010

Как получить ресурс в действии контроллера? База данных ресурса была инициализирована в application.ini.

class IndexController extends Zend_Controller_Action
{

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

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

Ответы [ 3 ]

4 голосов
/ 28 мая 2010

Попробуйте и посмотрите, работает ли это:

$this->getFrontController()->getParam('bootstrap')->getResource('db') 
1 голос
/ 28 мая 2010

ОБНОВЛЕНИЕ : хотя это решение работает, НЕ рекомендуется практика. Пожалуйста, прочитайте комментарий от @ Брайан М. ниже.

Вы можете использовать Zend_Registry . Инициализируйте соединение с базой данных в начальной загрузке и сохраните его в реестре:

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

Тогда вы можете удалить его из любого места:

$dbh = Zend_Registry::get('dbh');
0 голосов
/ 20 сентября 2012

В ответ на аналогичный вопрос о Набле Мэтью Вейер О'Пинни (Mr 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'); 
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...