req->get("id", "")); $buscar = trim($this->req->get("buscar", "")); $query = $this->queryInicial; if($id > 0) { $query->andWhere(["id" => $id]); } if($buscar) { # Ejemplo de buscador $query->andWhere([ "OR", ["ilike", "nombre", $buscar] ]); // } return new Respuesta($query, $this->limite, $this->pagina, $this->ordenar); } public function actionGuardar() { if (!$this->req->isPost) { throw new NotFoundHttpException(); } $usuario = \Yii::$app->getUser()->getIdentity(); $this->res->format = Response::FORMAT_JSON; $archivo = UploadedFile::getInstanceByName('archivo'); if ($archivo === null) { return (new Respuesta()) ->esError() ->mensaje("No se recibió el archivo"); } $sec = \Yii::$app->getSecurity(); $base = \Yii::getAlias("@app") . "/web/assets/"; $ruta = "recurso/"; if (!is_dir($base . $ruta)) { mkdir($base . $ruta); } $ruta .= date("Y/"); if (!is_dir($base . $ruta)) { mkdir($base . $ruta); } $ruta .= date("m/"); if (!is_dir($base . $ruta)) { mkdir($base . $ruta); } $dominio = \Yii::$app->getRequest()->getHostInfo() . "/assets/"; do { $nombreArchivo = str_replace("-", "", $ruta . $sec->generateRandomString()); if ($archivo->extension) { $nombreArchivo .= "." . $archivo->extension; } } while (is_file($base . $nombreArchivo)); if (!$archivo->saveAs($base . $nombreArchivo)) { return (new Respuesta()) ->mensaje("Ocurrió un problema al guardar el archivo"); } $uuid = Uuid::uuid4(); $modelo = new Media(); $modelo->uuid(); $modelo->creado = new Expression('now()'); $modelo->idUsuario = $usuario->id; $modelo->uuid = $uuid->toString(); $modelo->nombre = $archivo->name; $modelo->mimetype = $archivo->type; $modelo->extension = $archivo->extension; $modelo->ruta = $dominio . $nombreArchivo; $modelo->load($this->req->getBodyParams(), ''); if (!$modelo->save()) { return (new Respuesta($modelo)) ->mensaje("Hubo un problema al guardar Media"); } $modelo->refresh(); return (new Respuesta()) ->mensaje("Archivo subido correctamente") ->detalle($modelo); } public function actionEliminar() { $id = trim($this->req->getBodyParam("id", null)); $user = Yii::$app->getUser()->getId(); $modelo = null; $entro = false; if (!empty($id)) { $entro = true; $modelo = Media::find()->andWhere(["id" => $id])->one(); } if ($modelo === null) { return (new Respuesta(["id" => $id, "entro" => $entro, "modelo" => $modelo]))->esError()->mensaje("Archivo no encontrado"); } $modelo->idUsuario = $user; $modelo->eliminado = new Expression('now()'); if (!$modelo->save()) { return (new Respuesta($modelo)) ->mensaje("No se pudo eliminar Archivo"); } return (new Respuesta())->mensaje("Archivo eliminado"); } }