3

ZendFramework2にデフォルトのモジュールがあります。

namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class IndexController extends AbstractActionController
{
    public function indexAction()
    {
        return new ViewModel();
    }
}

現在のコントローラーの名前またはアクション名を取得して、ビューやレイアウトに渡すにはどうすればよいですか?私はZF2フレームワークから始めたばかりだと言わなければなりません。

4

3 に答える 3

19

ZF2については以下のようにしてください

$this->getEvent()->getRouteMatch()->getParam('action', 'index'); 

$this->getEvent()->getRouteMatch()->getParam('controller', 'index');
于 2012-10-14T15:29:10.410 に答える
4

これは私のプロジェクトで機能します:

$this->getHelperPluginManager()->getServiceLocator()->get('application')->getMvcEvent()->getRouteMatch()->getParam('action', 'index');

$controller = $this->getHelperPluginManager()->getServiceLocator()->get('application')->getMvcEvent()->getRouteMatch()->getParam('controller', 'index');

$controller = array_pop(explode('\\', $controller));
于 2014-04-17T08:20:10.470 に答える
0

Zend-3フレームワークのコントローラーでコントローラー/アクション名を取得する

private function getControllerActionName()
{
    $currentController = $this->getEvent()->getRouteMatch()->getParam('controller', 'index');
    $explode_controller = explode('\\', $currentController);
    $currentController = strtolower(array_pop($explode_controller));
    $currentController = str_replace('controller', '', $currentController);
    $currentAction = strtolower($this->getEvent()->getRouteMatch()->getParam('action', 'index'));
    return array(
            'controller' => $currentController,
            'action' => $currentAction,
        );
}

わたしにはできる。これもお役に立てば幸いです。この質問をしてくれてありがとう:)

于 2019-11-23T13:14:27.247 に答える