首页 > 解决方案 > SilverStripe 4 - DataExtension 自动发布版本化文件错误

问题描述

该解决方案所述,建议的解决方法在SS 环境中dev运行良好。test建议的方法是避免当前与通过DataObject $owns属性管理的自动发布文件相关的错误。

但是由于我在生产环境中上传了我的项目 - 在liveenv 上 - 解决方法不再起作用。

就我而言,我正在研究一个DataExtension模型User。其余的实现完全遵循上面提到的情况——使用UploadField. 在生产中,似乎片段在其条件下被忽略了。特别是,这是我的版本:

用户扩展

// AllegatiDownload: many_many File type uploaded with UploadField
public function onAfterWrite()
{
    if ($this->owner->AllegatiDownloadID) { // <- This is being ignored in live version
        $this->owner->AllegatiDownload()->publishSingle();
    }

    parent::onAfterWrite();
}

如果我尝试更换

$this->owner->AllegatiDownloadID

$this->owner->AllegatiDownload()

条件通过,但$this->owner->AllegatiDownload()->publishSingle()返回未跟踪的 500 异常。只是:

出现错误

而且,正如我所说,这只发生在生产中。

提前感谢您的支持。

标签: phpsilverstripesilverstripe-4

解决方案


今天我刷新了项目数据库,以便升级与之交互的自定义​​前端组件。似乎在那次冲洗之后,问题得到解决。这很奇怪,因为我/dev/build?flush=all之前尝试过很多次,但什么也没发生。服务器缓存可能吗?我不知道。但现在解决方法按预期工作。

无论如何感谢您的支持。


推荐阅读