public function indexAction($page = 1) { \PhalconDebug::startMeasure('s0', '控制器加载'); $builder = $this->modelsManager->createBuilder()->from('Files')->orderBy('id DESC'); $this->view->page = $this->getPaginatorByQueryBuilder($builder, 25, $page); $this->view->page->statistics = myParser::getStatistics(); \PhalconDebug::stopMeasure('s0'); }
public function showArchiveAction($repository, $month, $page = 1) { list($startTime, $endTime) = myTools::getBetweenTimes($month); $builder = $this->modelsManager->createBuilder()->from('Files')->rightJoin(myParser::getModelName($repository), 'sub.file_id = Files.id', 'sub')->where('created_at > :start:', ['start' => $startTime->toDateTimeString()])->andWhere('created_at < :end:', ['end' => $endTime->toDateTimeString()])->orderBy('Files.id DESC')->columns(['Files.*', 'sub.*']); $this->view->page = $this->getPaginatorByQueryBuilder($builder, 25, $page); $this->view->page->month = $month; $this->view->page->repository = myParser::getModelBySourceId($repository); }
public function addWebFile($source_id, $type) { $parser = myParser::getParser($type, $source_id); //获取Parser // dd($parser); $data = $parser->parseInfo(); //抽取数据 // dd($data); /** @var myModel|FileableTrait $this */ $this->save($parser->getDataForFile()); //保存file对象 $data['file_id'] = $this->id; //补充数据,添加file_id $model = myParser::getModelBySourceId($type); //获取模型 $model->save($data); //保存模型数据 EventFacade::fire('standards:addWebFile', $model); $this->saveFileable($model); //保存关联对象数据 return $this; }
public function editAction(Files $file) { $fileable = $file->getFileable(); if ($this->request->isPost()) { $data = $this->request->getPost(); // dd($data); if (isset($data['file_id'])) { $fileable->update($data); //更新fileable数据表 $file_data = myParser::getParserFromModel($fileable, $data)->getDataForFile(); $file_data['type'] = $data['type']; $file->update($file_data); return $this->success(); } $file->update($this->request->getPost()); return $this->success(); } $this->view->file = $file; if ($fileable == null) { $fileable = $file; } $this->view->form = myForm::buildFormFromModel($fileable, ['type']); }
public function getModelType() { $name = static::class; return myParser::getModelType($name); }
public static function getStatistics() { $result = []; $data = Fileable::query()->groupBy('fileable_type')->columns(['count(file_id) AS count', 'fileable_type AS type'])->execute(); foreach ($data as $row) { $className = $row->type; $result[] = ['name' => $className::getDatabaseName(), 'count' => $row->count, 'type' => myParser::getModelType($className)]; } return $result; }