/** Get all attributes from model name * @param string $model */ public static function get_from_model($model) { $model::check_model(); $result = array(); $attrs = $model::get_attr_def(); $relations = \Helper\Database\Relation::get_from_model($model); $id_col = $model::get_id_col($model); $result[$id_col] = self::from_def($id_col, array("type" => 'int', "is_unsigned" => true, "is_primary" => true, "is_autoincrement" => true)); foreach ($attrs as $name => $def) { if (!$model::is_rel($name)) { $result[$name] = self::from_def($name, $def); } } foreach (self::$default_cols as $name => $def) { $result[$name] = self::from_def($name, $def); } return $result; }
public static function sync_model_relations($model) { $attrs = \Helper\Database\Attr::get_from_model($model); $relations = \Helper\Database\Relation::get_from_model($model); if (any($relations)) { foreach ($relations as $rel) { if ($rel->type == \System\Model\Database::REL_HAS_MANY && $rel->is_bilinear) { self::sync_bilinear_relation_table($rel); } } } }