2014-02-17 17 views
1

所以我的問題是在Zend Framework 2中使用Doctrine 2.我正確安裝了Doctrine,並且當我嘗試在控制器中使用它時,出現此錯誤:PluginManager :: get無法爲getObjectManager獲取或創建實例

C:\wamp2\www\zf2\vendor\zendframework\zendframework\library\Zend\ServiceManager\ServiceManager.php:518 

這:

Zend\Mvc\Controller\PluginManager::get was unable to fetch or create an instance for getObjectManager 

這是我的控制器:

class BlogController extends AbstractActionController 
{ 

    public function blogAction() 
    { 
     $article = $this->getObjectManager()->getRepository('\Application\Entity\Article')->findAll(); 

     return new ViewModel(array('article' => $article)); 
    } 
} 

這是我的觀點:

<?php if (isset($article)) : ?> 
    <?php foreach($article as $articles): ?> 
     <div class="col-lg-12 text-center"> 
      <img class="img-responsive img-border img-full" src="" alt=""> 
      <h2><?php echo $articles->getTitle(); ?> 
       <br> 
       <small><?php echo $articles->getDate(); ?></small> 
      </h2> 
      <p><?php echo $articles->getContent(); ?></p> 
      <a href="<?php echo $this->url('article') ?>" class="btn btn-default btn-lg">Read More</a> 
      <hr> 
     </div> 
    <?php endforeach; ?> 
<?php endif; ?> 

對於我的配置遵循了這一tutorial

回答

3

可悲的是你沒有遵循教程,否則你會注意到,本教程中,他們定義控制器內的功能getObjectManager()。你沒有定義這個功能,因此控制器假定這是一個ControllerPlugin,因此要求ControllerPluginManager爲這個插件創建一個實例。但沒有這樣的插件曾經註冊過,這就是爲什麼你看到這個錯誤。

TL/DR - >逐步完成教程。瞭解你在做什麼,不要盲目複製粘貼你認爲重要的句子。

+0

Thnx兄弟,是的,我很匆忙,我沒有看到這個功能 – Mohammadov

0

你忘了執行getObjectManager爲您的控制器:包括在IndexController在你mentionned教程結束

protected function getObjectManager() 
    { 
     if (!$this->_objectManager) { 
      $this->_objectManager = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager'); 
     } 

     return $this->_objectManager; 
    } 

此方法。

相關問題