本文整理匯總了PHP中question_usage_by_activity::set_id_from_database方法的典型用法代碼示例。如果您正苦於以下問題:PHP question_usage_by_activity::set_id_from_database方法的具體用法?PHP question_usage_by_activity::set_id_from_database怎麽用?PHP question_usage_by_activity::set_id_from_database使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類question_usage_by_activity
的用法示例。
在下文中一共展示了question_usage_by_activity::set_id_from_database方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: insert_questions_usage_by_activity
/**
* Store an entire {@link question_usage_by_activity} in the database,
* including all the question_attempts that comprise it.
* @param question_usage_by_activity $quba the usage to store.
*/
public function insert_questions_usage_by_activity(question_usage_by_activity $quba)
{
$record = new stdClass();
$record->contextid = $quba->get_owning_context()->id;
$record->component = $quba->get_owning_component();
$record->preferredbehaviour = $quba->get_preferred_behaviour();
$newid = $this->db->insert_record('question_usages', $record);
$quba->set_id_from_database($newid);
foreach ($quba->get_attempt_iterator() as $qa) {
$this->insert_question_attempt($qa, $quba->get_owning_context());
}
}
示例2: insert_questions_usage_by_activity
/**
* Store an entire {@link question_usage_by_activity} in the database,
* including all the question_attempts that comprise it.
*
* You should not call this method directly. You should use
* @link question_engine::save_questions_usage_by_activity()}.
*
* @param question_usage_by_activity $quba the usage to store.
*/
public function insert_questions_usage_by_activity(question_usage_by_activity $quba)
{
$record = new stdClass();
$record->contextid = $quba->get_owning_context()->id;
$record->component = $quba->get_owning_component();
$record->preferredbehaviour = $quba->get_preferred_behaviour();
$newid = $this->db->insert_record('question_usages', $record);
$quba->set_id_from_database($newid);
// Initially an array of array of question_attempt_step_objects.
// Built as a nested array for efficiency, then flattened.
$stepdata = array();
foreach ($quba->get_attempt_iterator() as $qa) {
$stepdata[] = $this->insert_question_attempt($qa, $quba->get_owning_context());
}
$stepdata = call_user_func_array('array_merge', $stepdata);
if ($stepdata) {
$this->insert_all_step_data($stepdata);
}
}
示例3: load_from_records
/**
* Create a question_usage_by_activity from records loaded from the database.
*
* For internal use only.
*
* @param Iterator $records Raw records loaded from the database.
* @param int $questionattemptid The id of the question_attempt to extract.
* @return question_usage_by_activity The newly constructed usage.
*/
public static function load_from_records($records, $qubaid) {
$record = $records->current();
while ($record->qubaid != $qubaid) {
$records->next();
if (!$records->valid()) {
throw new coding_exception("Question usage $qubaid not found in the database.");
}
$record = $records->current();
}
$quba = new question_usage_by_activity($record->component,
context::instance_by_id($record->contextid, IGNORE_MISSING));
$quba->set_id_from_database($record->qubaid);
$quba->set_preferred_behaviour($record->preferredbehaviour);
$quba->observer = new question_engine_unit_of_work($quba);
// If slot is null then the current pointer in $records will not be
// advanced in the while loop below, and we get stuck in an infinite loop,
// since this method is supposed to always consume at least one record.
// Therefore, in this case, advance the record here.
if (is_null($record->slot)) {
$records->next();
}
while ($record && $record->qubaid == $qubaid && !is_null($record->slot)) {
$quba->questionattempts[$record->slot] =
question_attempt::load_from_records($records,
$record->questionattemptid, $quba->observer,
$quba->get_preferred_behaviour());
if ($records->valid()) {
$record = $records->current();
} else {
$record = false;
}
}
return $quba;
}
示例4: load_from_records
/**
* Create a question_usage_by_activity from records loaded from the database.
*
* For internal use only.
*
* @param Iterator $records Raw records loaded from the database.
* @param int $questionattemptid The id of the question_attempt to extract.
* @return question_usage_by_activity The newly constructed usage.
*/
public static function load_from_records($records, $qubaid) {
$record = $records->current();
while ($record->qubaid != $qubaid) {
$records->next();
if (!$records->valid()) {
throw new coding_exception("Question usage $qubaid not found in the database.");
}
$record = $records->current();
}
$quba = new question_usage_by_activity($record->component,
get_context_instance_by_id($record->contextid));
$quba->set_id_from_database($record->qubaid);
$quba->set_preferred_behaviour($record->preferredbehaviour);
$quba->observer = new question_engine_unit_of_work($quba);
while ($record && $record->qubaid == $qubaid && !is_null($record->slot)) {
$quba->questionattempts[$record->slot] =
question_attempt::load_from_records($records,
$record->questionattemptid, $quba->observer,
$quba->get_preferred_behaviour());
if ($records->valid()) {
$record = $records->current();
} else {
$record = false;
}
}
return $quba;
}