Как удалить учетную запись клиента программно в Magento2 CE?
Версия: Magento 2.1.0
Я запускаю следующие коды в своем контроллере и получаю ошибку:
$customer = $this->customerFactory->create()->load($id);
$customer->delete();
Ошибка:
Exception #0 (Magento\Framework\Exception\LocalizedException): Delete operation is forbidden for current area
Мой код был остановлен методом beforeDelete() в Magento\Framework\Model\AbstractModel.php . Он вызывает другой метод, называемый isAllowed(абстрактная модель $модель)
Как обойти эти методы и удалить клиента?
1
1 answers
Операция удаления клиента действительна только для администратора. Когда вы выполняете операцию удаления, проверка magento issecurea является истинной/ложной. Таким образом, вы можете назначить issEcureaArea следующим образом:
/** * @var \Magento\Framework\Registry */ protected $registry; /** * @param Context $context * @param PageFactory $resultPageFactory */ public function __construct( \Magento\Framework\Registry $registry ) { $this->registry = $registry; }
Теперь измените свой код следующим образом:
$this->registry->register('isSecureArea', true); $customer = $this->customerFactory->create()->load($id); $customer->delete();
Очистить кэш.
5
Author: Sohel Rana, 2017-03-09 04:24:14