最近、コースを通じてAngularJSとZend Framework 2の学習を開始しました。私が2013年に覚えているコースの年を考えると、両方のフレームワークでいくつかのことが変わってきました。すぐに、私は、データベースへの接続をテストするとDoctrine 2を使用してレコードを一覧表示するには、次のコードスニペットを使用して問題に出くわした:"getServiceLocator"という名前のプラグインがプラグインマネージャーZend Mvc Controller PluginManagerに見つかりません
namespace Application\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class IndexController extends AbstractActionController {
public function indexAction() {
$em = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
$repo = $em->getRepository('Entity\Categoria');
$categorias = $repo->findAll();
return new ViewModel(['categories'=>$categorias]);
}
}
私が実行すると、それは次のエラーを返します::
さらにA plugin by the name "getServiceLocator" was not found in the plugin manager Zend\Mvc\Controller\PluginManager
、追加情報:
Zend\ServiceManager\Exception\ServiceNotFoundException
ファイル:
C:\xampp\htdocs\Curso de ZF2\vendor\zendframework\zend-servicemanager\src\AbstractPluginManager.php:133
私が知る限り、この問題はgetServiceLocator()
がZend Framework 2の最新バージョンから削除されたことに由来します。しかし、これを解決してテストを続けることはできません。誰かが私を助けることができますか?
しかし、このクラスファクトリ "IndexController"ファイル内で行うのですか? –
私はあなたの事例に合わせてもっと良い例を追加しました。ファイルや設定を置く場所などの情報もありますので、もう一度全部読んでください。あなたはあなたが持っているバージョンを言わなかったので、これはZF3.0向けです(以前の2.xバージョンでは動作しません)。あなたがすべてを追うなら、これはあなたの問題を解決するはずです。それが役に立てば幸い! – Fractalizer