在 Moodle 的新 activity 中添加新实例

add new instance in a new activity in Moodle

我正在尝试在已成功创建的 Moodle 中创建新的 activity 但我无法在我的 dB 中添加新实例 在我的 lib.php

function activity_add_instance($data){
    global $DB;

    $data->timecreated = time();
    $data->timemodified = time();
    $cmid = $data->coursemodule;

    $data->id = $DB->insert_record('testnew', $data);
     
    $DB->set_field('course_modules', 'instance', $data->id, ['id' => $cmid]);

    // Extra fields required in grade related functions.
    $data->cmid = $data->coursemodule;
    return $data->id;
}

在table testnew 中没有找到新数据所以出现这个错误:

Error reading from database

您需要在安装过程中创建 table。假设 testnew 是 activity 名称,table 结构应该在

/mod/testnew/db/install.xml

您可以通过站点管理 > 开发 > XMLDB 编辑器创建文件

https://docs.moodle.org/dev/Activity_modules#install.xml