как получить данные для публикации в файле модели Magento - Magento 2x


Я хочу получить Данные для публикации в файле модели , который является моим пользовательским файлом AccountManagement

/app/code/[Vendor]/[Module]/Model/AccountManagement.php

Примечание:

Я могу получить к нему доступ через $_POST, 'superglobal' variable, но я не хочу использовать его таким образом, потому что it's not valid for Magento standard.

Потому что Magento использует для обработки данных POST и REQUEST с помощью этого метода в контроллере.

$this->postData = $this->getRequest()->getPostValue();

Но я не могу использовать тот же метод в файле Model.

Так что у кого-нибудь есть идея fetch POST data in Model file IN Magento 2x, As per Magento Standard

Author: Aditya Shah, 2018-05-24

2 answers

Пожалуйста, попробуйте использовать приведенный ниже код. Мы введем класс Http в конструктор и будем использовать его для получения данных post. Это стандартный способ Magento 2

<?php
namespace Namespace\Module\Model;
class ModelClassName 
{
    protected $request;
    public function __construct(
        \Magento\Framework\App\Request\Http $request,
    ) {
       $this->request = $request;
    }
    public function getPost()
    {
        return $this->request->getPost();
    }
}
 3
Author: Dhaval Solanki, 2018-05-24 06:57:39

Просто для справки, это сработало для меня.

$this->getRequest()->getPost() 

Или добавьте Magento\Framework\App\RequestInterface к параметрам конструктора в ваших собственных классах:

<?php
namespace MyModuleNameSpace\MyModule\Block
use Magento\Framework\App\RequestInterface;

class MyClass
{
    /**
     * Request instance
     *
     * @var \Magento\Framework\App\RequestInterface
     */
    protected $request;

    /**
     * @param RequestInterface $request
     */
    public function __construct(RequestInterface $request)
    {
        $this->request = $request;
    }

    public function getMyPostParams()
    {
        $postData = $this->request->getPost();
    }
}
 0
Author: Aditya Shah, 2018-05-24 10:56:18