public function comentar($tipoRaiz, $idRaiz) { $vdt = new Validate\Validator(); $vdt->addRule('idRaiz', new Validate\Rule\NumNatural())->addRule('tipoRaiz', new Validate\Rule\InArray(['Propuesta', 'Problematica', 'Comentario', 'ParrafoDocumento', 'Novedad', 'Evento']))->addRule('cuerpo', new Validate\Rule\MinLength(4))->addRule('cuerpo', new Validate\Rule\MaxLength(2048))->addFilter('tipoRaiz', 'ucfirst'); $req = $this->request; $data = array_merge($req->post(), ['idRaiz' => $idRaiz, 'tipoRaiz' => $tipoRaiz]); if (!$vdt->validate($data)) { throw new TurnbackException($vdt->getErrors()); } $comentable = call_user_func($vdt->getData('tipoRaiz') . '::findOrFail', $vdt->getData('idRaiz')); if ($vdt->getData('tipoRaiz') == 'Comentario' && $comentable->comentable_type == 'Comentario') { throw new TurnbackException('No puede responderse una respuesta.'); } $autor = $this->session->getUser(); $comentario = new Comentario(); $comentario->cuerpo = $vdt->getData('cuerpo'); $comentario->autor()->associate($autor); $comentario->comentable()->associate($comentable); $comentario->save(); $raiz = $comentable->raiz; $raiz->contenido()->increment('puntos', 3); $autor->increment('puntos', 5); $log = UserlogCtrl::createLog('newComenta', $autor->id, $raiz); NotificacionCtrl::createNotif($raiz->contenido->autor_id, $log); $this->flash('success', 'Su comentario fue enviado exitosamente.'); $this->redirect($req->getReferrer()); }
$usuario->email = '*****@*****.**'; $usuario->password = password_hash('12345678', PASSWORD_DEFAULT); $usuario->nombre = 'Borrable'; $usuario->apellido = 'Test'; $usuario->img_tipo = 1; $usuario->img_hash = md5(strtolower(trim($usuario->email))); $usuario->save(); $usuario = new Usuario(); $usuario->email = '*****@*****.**'; $usuario->password = password_hash('12345678', PASSWORD_DEFAULT); $usuario->nombre = 'Extra'; $usuario->apellido = 'Test'; $usuario->img_tipo = 1; $usuario->img_hash = md5(strtolower(trim($usuario->email))); $usuario->partido()->associate($partido); $usuario->save(); $comentario = new Comentario(); $comentario->cuerpo = 'Este es un comentario de test.'; $comentario->autor()->associate($usuario); $comentario->comentable()->associate($problem); $comentario->save(); $patrulla = new Patrulla(); $patrulla->nombre = 'Patrulla Test'; $patrulla->descripcion = 'Patrulla para testear.'; $patrulla->save(); $usuario->patrulla()->associate($patrulla); $usuario->save(); $patrulla = new Patrulla(); $patrulla->nombre = 'Patrulla Borrable'; $patrulla->descripcion = 'Patrulla para testear borrarla.'; $patrulla->save();