我们使用自定义扩展程序在magento中创建了自定义客户属性。在此扩展中,我们还使用customer_save_after创建了一个观察者,并以编程方式更新客户属性。
$customerId = $this->_customersession->getCustomerId();
$customer = $this->customerFactory->create();
$websiteId = $this->storeManager->getWebsite()->getWebsiteId();
$customer->setWebsiteId($websiteId);
$customer->load($customerId);
$customer->setCustomAttribute('Test');
$customer->save();
上面的代码在本地和开发服务器上工作正常,但站点移动到生产服务器,上面的代码停止工作。为了让它再次起作用,我们需要以下列方式更新保存过程。
$customerData = $customer->getDataModel();
$customerData->setCustomAttribute('my_attr_code', $val);
$customer->updateData($customerData);
$customer->save();
任何人都可以指导我在实时中断执行的可能问题但是在开发服务器上一切正常。 我们也尝试在本地系统上使用开发数据库的副本,它也工作正常。问题是代码是一样的,数据库没有任何问题,更改保存过程后,执行完全没有任何错误。可能出现什么问题?
答案 0 :(得分:0)
我检查服务器的apache规范。正如你所说,它在你的本地数据库中正常工作是相同的,除服务器外,一切都是一样的。然后检查apache php.ini并比较Local和Live。您可能有一些配置不让代码正常运行。