как получить данные для публикации в файле модели 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
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();
}
}
Просто для справки, это сработало для меня.
$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();
}
}