我试图保存一个条目,但是由于一个无效的矩阵字段,Craft错误。该条目包括一个矩阵字段,但我没有更改它。我在试着编辑另一个字段。当我从管理面板手动保存条目时,它保存得很好,没有任何错误。
我在网上研究过这个问题,很多人建议我在保存条目时提供矩阵的ids。不过,即使如此,我还是会犯错误。
在下面的代码中,您将看到我正在尝试保存3个字段:
Image
每个字段都要求我手动保存它们,因为它们是关系。不过,如前所述,这是可以的,矩阵字段(名为跟踪)错误。
下面是我的代码
$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();
}
}返回的错误如下
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发布于 2022-09-06 07:13:05
包括矩阵本身而不是它们的ids是有效的。
$entry->getContent()->tracks = $entry->tracks->all();https://stackoverflow.com/questions/73585957
复制相似问题