Перенаправление на панель мониторинга при нажатии кнопки "Печать" в бэкэнде Magento 2
Я создал пользовательскую кнопку, я пытаюсь распечатать детали заказа. Я использую плагин для этого
Di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Sales\Block\Adminhtml\Order\View">
<plugin name="addMyButton" type="Pulsestorm\MenuTutorial\Plugin\Block\Adminhtml\Order\View"/>
</type>
</config>
View.php
<?php
namespace Pulsestorm\MenuTutorial\Plugin\Block\Adminhtml\Order;
class View{
protected $urlBuider;
public function __construct(
\Magento\Framework\UrlInterface $urlBuilder
) {
$this->urlBuilder = $urlBuilder;
}
public function beforeSetLayout(\Magento\Sales\Block\Adminhtml\Order\View $view)
{
$url = $this->urlBuilder->getUrl('pulsestorm_menututorial/print/order_id'.$view->getOrderId() );
$newString = implode('/',str_split($url,73));
//$url = '/mymodule/controller/action/id/' . $view->getOrderId();
$view->addButton(
'order_myaction',
[
'label' => __('CustomPrint'),
'class' => 'print',
'onclick' => "setLocation('{$newString}')"
]
);
}
}
Путь к контроллеру - Pulsestorm\Menututorial\Контроллер, а имя контроллера - Printaction
Когда я нажимаю кнопку Customprint, она перенаправляет меня на dashnoard. пожалуйста, помогите.
3 answers
Я решил это сам, я создал routes.xml неопределенный etc/admin.html и укажите admin в качестве идентификатора маршрута и определите имя пользователя как pulsestorm_menututorial. И, наконец, я поместил свой файл контроллера PrintAction.php в папке Controller/Adminhtml/Заказ. Теперь URL будет http://127.0.0.1/magento/2.1/admin/pulsestorm_menututorial/order/printaction/id/270/key/48628201112efdcfd8196ca49db1f746ada8711cf24bfe87870e9e2f03f9a647
Где порядок - это имя папки внутри папки Adminhtml и действие печати - это имя контроллера.
Если все еще проблема, удалите var/папку и повторите попытку
Я думаю, что у вашей формы должен быть ключ формы, позволяющий отправлять данные.
Ссылка:
Http://ka.lpe.sh/2012/09/13/magento-submitting-form-in-admin-redirects-to-dashboard/
Я думаю, вам нужно проверить базу данных, таблицу core_config_data. Выполните следующий запрос в БД
UPDATE `core_config_data` SET `value` = '0' WHERE `core_config_data`.`path` like 'advanced/modules_disable_output/Magento_AdminNotification';
Этот запрос позволяет модулю уведомлений администратора и решить проблему.