我尝试完成一个将数据导入我的craftcms项目的插件。我已经创建了一个基于控制台的方法/服务,我在我的 shell 中触发/运行它。在我的方法中,我收到数据(XML or JSON)
我解析我的数据并尝试创建和填充我已经创建的特定通道的条目。
我试过"saveElement()"
哪个不起作用。
我找到了一些关于 craftcms v2 的 tuts 和信息(例如:https ://docs.craftcms.com/api/v2/craft-entriesservice.html#public-methods )
现在我被卡住了,我找不到任何关于如何用craftcms v3解决这个问题的信息。
这是我经过数小时不同尝试后的最后一个代码版本:(
$section = Craft::$app->sections->getSectionByHandle('testentry');
$entryTypes = $section->getEntryTypes();
$entryType = $entryTypes[0];
// Save Entry
//$entry = new EntryModel();
$entry = new \craft\elements\Entry();
$entry->sectionId = $section->id;
$entry->typeId = $entryType->id;
//$entry->locale = Craft::$app->i18n->getPrimarySiteLocaleId();
//$entry->authorId = 1; // TODO: Set author
$entry->enabled = true;
$entry->postDate = $post['post_date'];
$entry->slug = $post['post_name'];
// $entry->getContent()->title = $post['post_title'];
// $entry->setContentFromPost(array(
// 'body' => $postContent,
// 'categoryCareer' => NULL,
// ));
if (Craft::$app->elements->saveElement($entry)) {
$result = true;
}
else {
echo 'Could not save the Job entry.'."\n";
$result = false;
}