Перенаправление на панель мониторинга при нажатии кнопки "Печать" в бэкэнде 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

enter image description here Когда я нажимаю кнопку Customprint, она перенаправляет меня на dashnoard. пожалуйста, помогите.

Author: Ramkishan Suthar, 2016-11-08

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/папку и повторите попытку

 1
Author: Ramkishan Suthar, 2016-11-09 04:39:49

Я думаю, что у вашей формы должен быть ключ формы, позволяющий отправлять данные.

Ссылка:

Http://ka.lpe.sh/2012/09/13/magento-submitting-form-in-admin-redirects-to-dashboard/

Https://github.com/magento/magento2/blob/6ea7d2d85cded3fa0fbcf4e7aa0dcd4edbf568a6/app/code/Magento/Backend/view/adminhtml/templates/admin/formkey.пхтмл

 0
Author: Rajkumar .E, 2016-11-08 12:30:42

Я думаю, вам нужно проверить базу данных, таблицу core_config_data. Выполните следующий запрос в БД

UPDATE `core_config_data` SET `value` = '0' WHERE `core_config_data`.`path` like 'advanced/modules_disable_output/Magento_AdminNotification';

Этот запрос позволяет модулю уведомлений администратора и решить проблему.

 0
Author: Chirag Jain, 2018-04-03 11:49:29