public static function model($className = __CLASS__)
 {
     return parent::model($className);
 }
示例#2
0
 public static function getModels($params = array())
 {
     $result = array();
     $modules_dirs = scandir(MODULES_PATH);
     foreach ($modules_dirs as $module_dir) {
         if ($module_dir[0] == '.') {
             continue;
         }
         $module_class = ucfirst($module_dir) . 'Module';
         if (array_key_exists('active', $params)) {
             $active_attr = new ReflectionProperty($module_class, 'active');
             if ($active_attr->getValue() !== $params['active']) {
                 continue;
             }
         }
         $models_dir = MODULES_PATH . $module_dir . '/models';
         if (!file_exists($models_dir)) {
             continue;
         }
         $models_files = scandir($models_dir);
         foreach ($models_files as $model_file) {
             if ($model_file[0] == '.') {
                 continue;
             }
             $model_class = str_replace('.php', null, $model_file);
             $model = ActiveRecordModel::model($model_class);
             if (isset($params['meta_tags'])) {
                 $behaviors = $model->behaviors();
                 $behaviors = ArrayHelper::extract($behaviors, 'class');
                 if (!in_array('application.components.activeRecordBehaviors.MetaTagBehavior', $behaviors)) {
                     continue;
                 }
             }
             $result[$model_class] = $model->name();
         }
     }
     return $result;
 }
示例#3
0
 public function findAllAttaches()
 {
     $model = $this->getOwner();
     $object_id = $model->isNewRecord ? $this->_tmpPrefix() : $model->id;
     return ActiveRecordModel::model($this->attached_model)->findAllByAttributes(array('object_id' => $object_id, 'model_id' => get_class($model)));
 }