首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于矩阵字段无效,无法保存条目-C券CMS 2

由于矩阵字段无效,无法保存条目-C券CMS 2
EN

Stack Overflow用户
提问于 2022-09-02 17:09:40
回答 1查看 69关注 0票数 0

我试图保存一个条目,但是由于一个无效的矩阵字段,Craft错误。该条目包括一个矩阵字段,但我没有更改它。我在试着编辑另一个字段。当我从管理面板手动保存条目时,它保存得很好,没有任何错误。

我在网上研究过这个问题,很多人建议我在保存条目时提供矩阵的ids。不过,即使如此,我还是会犯错误。

在下面的代码中,您将看到我正在尝试保存3个字段:

Image

  • Language

  • Tracks

  • 覆盖

每个字段都要求我手动保存它们,因为它们是关系。不过,如前所述,这是可以的,矩阵字段(名为跟踪)错误。

下面是我的代码

代码语言:javascript
复制
    $criteria = craft()->elements->getCriteria(ElementType::Entry);
    $criteria->section = "programmes";
    $entry = $criteria->first([
        "slug" => $programme["slug"]
    ]);

    if ($entry) {
        // Update Entry attributes
        $entry->getContent()->coverImage = $entry->coverImage->ids();
        $entry->getContent()->tracks = $entry->tracks->ids();
        $entry->getContent()->language = $entry->language->ids();

        // Save Entry
        if (!craft()->entries->saveEntry($entry)) {
            return $entry->getErrors();
        }
    }

返回的错误如下

代码语言:javascript
复制
Argument 1 passed to Craft\MatrixService::validateBlock() must be an instance of Craft\MatrixBlockModel, string given, called in craft/app/fieldtypes/MatrixFieldType.php on line 451
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-06 07:13:05

包括矩阵本身而不是它们的ids是有效的。

代码语言:javascript
复制
$entry->getContent()->tracks = $entry->tracks->all();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73585957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档