Magento 2-标量扩展属性未保存



我一直在阅读Magento的文档,我一直在为更复杂的数据结构使用扩展属性,但我基本上想添加一个简单的标量属性

<extension_attributes for="MagentoSalesApiDataShipmentTrackInterface">
<attribute code="track_url" type="string"/>
</extension_attributes>

我认为对于标量属性,我几乎不需要做任何其他事情,比如添加插件,只需要正确设置值并使用存储库来保存

$shipment = $this->shipmentRepository->get($shipmentId);
$track = $this->trackFactory->create()
->setTrackNumber('123')
->setCarrierCode('abc')
->setTitle('super delivery');

$extensionAttributes = $track->getExtensionAttributes()->setTrackUrl(
'http://www.trackme.com/abcdef'
);
$track->setExtensionAttributes($extensionAttributes);

$shipment->addTrack($track);
$this->shipmentRepository->save($shipment);

代码生成正确,没有错误,但当我尝试检索它时,它实际上没有返回任何

$track->getExtensionAttributes()->getTrackUrl()

那么我是不是误解了扩展属性?这是否意味着我总是需要向数据库添加一些新的内容,即使是标量类型?

不幸的是,它不是这样工作的。您必须为装运存储库写下一个rSave插件,您的自定义保存逻辑就是在这里实现的。

相关内容

  • 没有找到相关文章

最新更新