Итак, у меня есть этот ассоциативный массив, ключом является столбец данных, а значением являются сами данные, другие фреймворки, такие как kohana, используют ORM, который автоматически создает частный $data = aray() и передает его в базу данных... поэтому, если
$class->data = "value";
$class->save() // $class->update()
это легко в фреймворках с ORM, но как насчет мудла? Я пытался использовать $DB->insert_record(), но создать stdClass сложно. как я могу передать массивы в базу данных в Moodle? пожалуйста, мне нужна помощь... вот мой класс
<?php
/**
* Course completion Extention- student self marked - plugin
*
* @package completion
* @copyright 2012 Ekomerce Ltd
* @author Gavin Sanden <[email protected]>
*/
completion_ext::$DB = $DB;
class completion_ext{
private $data = array();
public static $DB;
/**
* DB Table
* @var string $table
*/
public $table = 'completion_ext';
/**
* Array of required table fields, must start with 'id'.
* @var array $required_fields
*/
public static function fetch_all($params) {}
function __construct($data = null){
if($data != null && is_array($data)){
$this->data = $data;
}
}
public static function get_from_user($user_id){
$variables = self::$DB->get_records('completion_ext',array(
'user_id'=>$user_id
));
$completion_array = array();
foreach($variables as $variable){
$com = new completion_ext($variable);
$completion_array[] = $com;
}
return $completion_array;
}
public static function exists($user, $course){
return self::$DB->record_exists('completion_ext', array(
'user_id'=>$user,
'course'=>$course
));
}
public static function id_exists($id){
return self::$DB->record_exists('completion_ext', array(
'id'=>$id
));
}
public static function get_from_course($course, $user_id){
$variables = self::$DB->get_record('completion_ext',array(
'user_id'=>$user_id,
'course'=>$course
));
return new completion_ext($variables);
}
public function __set($dt, $vl){
$this->data[$dt] = $vl;
}
public static function get_by_id($id){
$variables = self::$DB->get_record('completion_ext',array(
'id'=>$id
));
return new completion_ext($variables);
}
public static function check_completion_from_user($user_id){
self::$DB->record_exists($table, array(
'user_id'=>$user_id
));
}
public function __get($dt){
return $this->data[$dt];
}
public function save(){
echo print_r($this->data);
}
public function update(){
self::$DB->update_record("completion_ext", $this);
}
} ?>