0
zend3을 처음 사용하면서 문제가 발생했습니다. 버전 3에 더 이상 존재하지 않는 getservicelocator가 컨트롤러로 작업 중이며이 마이그레이션을 구현하는 방법을 알고 싶습니다. 누구나 올바른 방법이 아닌 컨트롤러에 대한 것getServicelocator를 zend 3으로 업데이트하는 방법
당신은 추상 컨트롤러에서 작업을해야하는 이유 아키텍처는 귀하의 경우 정말 좋지 않아이 변경
namespace Base\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Zend\Paginator\Paginator;
use Zend\Paginator\Adapter\ArrayAdapter;
abstract class AbstractController extends AbstractActionController
{
/**
* Entity manager
* @var
*/
protected $em;
/** Entity
* @var
*/
protected $entity;
/**
* Controller
* @var
*/
protected $controller;
/**
* @var
*/
protected $route;
/**
* @var
*/
protected $service;
/**
* @var
*/
protected $form;
private $configTable;
/**
* AbstractController constructor.
*/
abstract function __construct();
...
/**
*
* @return \Zend\Http\Response
*/
public function excluirAction()
{
$service = $this->getServiceLocator()->get($this->service);
$id = $this->params()->fromRoute('id',0);
// Abstract service
if ($service->remove(array('id' => $id))) {
$this->flashMessenger()->addSuccessMessage('Success');
} else {
$this->flashMessenger()->addErrorMessage('Error');
}
return $this->redirect()->toRoute($this->route, array('controller' => $this->controller));
}