получить URL-адрес контроллера администратора в magento 2


Вот моя структура каталогов файла контроллера в Magento 2 - app/code/Namespace/Modulename/Controller/Adminhtml/Blacklist/Index.php

В Index.php я пишу приведенный ниже код -

namespace Mynamespace\Modulename\Controller\Adminhtml\ModuleDirectoryname;

use Magento\Backend\App\Action;
use Magento\Backend\App\Action\Context;

class Index extends Action
{
    protected $helper;
    protected $context;

    public function __construct(
        Context $context,
        \VT\Blacklist\Helper\Data $helper
    ) {
        $this->viewHelper = $viewHelper;
        parent::__construct($context);
    }

    public function execute()
    {
        echo "hello"; die;
    }
}

Я использую этот Inject - \Magento\Backend\Model\urlinterface$urlbuilder в моей другой функции __construct и печатаю URL-адрес через -

echo $url = $this->urlBuilder->getUrl('namespace_modulename/adminhtml/moduledirectoryname/index');

Но как только я запускаю выше напечатанного URL-адреса, он перенаправляется на панель управления, а не печатает "привет";

Может вы, пожалуйста, дайте мне знать, чего мне здесь не хватает?

Author: Raphael at Digital Pianism, 2016-08-31

1 answers

Я почти уверен, что это потому, что ваш URL-адрес сгенерирован неправильно.

Давайте возьмем следующий пример:

getUrl('adminRouteFrontName/controllerFolder/actionClass')

Вот как должен быть создан URL-адрес, и вот как вы должны заменить значения:

  • adminroutefrontname: это значение, объявленное в вашем adminhtml/routes.xml, поэтому я не уверен, что вы поместили туда в своем случае
  • Папка контроллера: имя папки контроллера в разделе Controller/Adminhtml, поэтому в вашем случае это Имя модуля
  • Класс действий: имя вашего класса действий в папке контроллера, например, с Index.php это будет index, для Grid.php это будет grid, и поэтому в вашем случае это index

Итак, если вы правильно поняли эти три вещи, я почти уверен, что вам следует попробовать удалить adminhtml из вашего параметра.

 6
Author: Raphael at Digital Pianism, 2016-08-31 14:00:03