Ejemplo n.º 1
0
 public static function boot()
 {
     parent::boot();
     static::deleting(function ($comentario) {
         $answerIds = $comentario->respuestas()->lists('id');
         if ($answerIds) {
             VotoComentario::whereIn('comentario_id', $answerIds)->delete();
             $comentario->respuestas()->delete();
         }
         $comentario->votos()->delete();
         return true;
     });
 }
Ejemplo n.º 2
0
 public function votar($idCom)
 {
     $vdt = new Validate\Validator();
     $vdt->addRule('idCom', new Validate\Rule\NumNatural())->addRule('valor', new Validate\Rule\InArray(array(-1, 1)));
     $req = $this->request;
     $data = array_merge(array('idCom' => $idCom), $req->post());
     if (!$vdt->validate($data)) {
         throw new TurnbackException($vdt->getErrors());
     }
     $usuario = $this->session->getUser();
     $comentario = Comentario::findOrFail($idCom);
     $voto = VotoComentario::firstOrNew(array('comentario_id' => $comentario->id, 'usuario_id' => $usuario->id));
     if (!$voto->exists) {
         $voto->valor = $vdt->getData('valor');
         $voto->save();
         $comentario->increment('votos', $voto->valor);
         $comentario->autor()->increment('puntos', $voto->valor);
     } else {
         throw new TurnbackException('No puede votar dos veces el mismo comentario.');
     }
     $this->flash('success', 'Su voto fue registrado exitosamente.');
     $this->redirect($req->getReferrer());
 }
Ejemplo n.º 3
0
 public static function boot()
 {
     parent::boot();
     static::deleting(function ($documento) {
         TagCtrl::updateTags($evento->contenido, array());
         foreach ($documento->parrafos as $parrafo) {
             $CommentIds = $parrafo->comentarios()->lists('id');
             if ($CommentIds) {
                 $AnswerIds = Comentario::where('comentable_type', 'Comentario')->whereIn('comentable_id', $CommentIds)->lists('id');
                 if ($AnswerIds) {
                     VotoComentario::whereIn('comentario_id', $AnswerIds)->delete();
                     Comentario::whereIn('id', $AnswerIds)->delete();
                 }
                 VotoComentario::whereIn('comentario_id', $CommentIds)->delete();
                 $parrafo->comentarios()->delete();
             }
             $parrafo->delete();
         }
         $documento->versiones()->delete();
         $documento->contenido->delete();
         return true;
     });
 }