Как создать контроллер без создания меню в Adminhtml Magento 2
Я сослался на приведенную ниже статью, чтобы отобразить кнопку на моей странице конфигурации.
Https://magecomp.com/blog/add-a-button-in-magento-2-stores-configuration-with-custom-action/
В файле
App\code\Vendor\Extension\Block\System\Config\Button.php
Существует функция, с помощью которой мы можем определить наш URL-адрес Ajax
public function getAjaxUrl()
{
return $this->getUrl(‘your action Url’);
}
Поэтому для этого я хочу создать контроллер в Adminhtml, к которому я могу получить доступ, используя URL-адрес действия. но все примеры, которые я нашел, также создают меню на боковой панели в дополнение к действию контроллера.
Например, этот: https://www.maximehuran.fr/en/admin-controller-creation-with-magento-2/
Есть ли какой-либо способ получить доступ к действию контроллера без создания меню?
Редактировать: После некоторых изменений в коде я могу войти в контроллер, используя следующий URL:
My_backend_url/идентификатор маршрута/имя_контроллера/индекс
Но он перенаправляет обратно меня на страницу панели мониторинга.
Как упоминалось в этой статье:
Пользовательское действие администратора Magento 2 Перенаправлено на панель мониторинга
Это ключевой вопрос Секретной формы.
Мы можем получить секретный ключ формы, только если добавим контроллер в меню, чего я не хочу делать!
Отключение ключа секретной формы - это не то, что я предпочитаю!
2 answers
Ответ, который сработал для меня, взят из этой статьи:
Пользовательское действие администратора Magento 2 Перенаправлено на панель мониторинга
Мы можем использовать защищенные $_publicactions = ['ИМЯ_ПОЛЬЗОВАТЕЛЯ_ДЕЙСТВИЯ'];, чтобы отключить проверку ключа формы для конкретного контроллера, как показано ниже:
class Index extends \Magento\Backend\App\Action
{
protected $_publicActions = ['index'];
public function execute()
{
echo "My Hello World! Controller";
}
}
Лучше отключить ключ формы только для моего контроллера, а не везде в панели администратора.
Пожалуйста, поделитесь, если у кого-нибудь есть лучшее решение.
Ваше пространство имен должно быть прописным, а не строчным, если вы хотите идти шаг за шагом Как создать контроллер в magento 2