/** * seta o like da entidadeAtiva atual pra um comentario específico * * @param [integer] id do comentario * @return */ public function getLikecomentario($id) { //Verifica se o comentario existe $comentario = Comentario::findOrFail($id); //Testo se o usuário está logado $user = Auth::user(); $entidadeAtiva = $user->entidadeAtiva; //Se já tiver dado like no comentario com esse id, //consigo encontralo pelo Collention->find() $alreadyLiked = $entidadeAtiva->likeComentario->find($comentario->id); if (!$alreadyLiked) { //Salvando relação (Dando o like finalmente!) $entidadeAtiva->likeComentario()->attach($comentario->id); // Aumenta a relevancia do post $comentario->post->relevancia += $comentario->post->relevancia_rate; $comentario->post->push(); //Só levantar uma notificacao se o like for em um //comentario que nao seja seu ou de alguma de suas entidades if ($entidadeAtiva->user->id != $comentario->author->user->id) { //Criando nova notificacao $novaNotificacao = Notificacao::create(['titulo' => 'Curtiram seu comentario', 'mensagem' => $entidadeAtiva->apelido . ' curtiu seu comentario', 'tipo_notificacao' => 'like_comentario', 'url' => $comentario->post->url]); //associando a entidadeAtiva com o from e o autor do comentario likeado como target $entidadeAtiva->fromNotificacoes()->save($novaNotificacao); $comentario->author->notificacoes()->save($novaNotificacao); $novaNotificacao->push(); } } else { //se ja estiver dando like, remover like $entidadeAtiva->likeComentario()->detach($comentario->id); } // Retorna a quantidade de likes para utilizar na view return $comentario->getQuantidadeLikes(); }
public function destroy($id) { $comentario = Comentario::findOrFail($id); if ($comentario->delete()) { return redirect()->action('BackendController@index')->with('statusComentario', 'Comentário exlcuído'); } }
public function save(Request $request) { $obra = Obra::findOrFail($request->input('obra')); $denuncia = new Denuncia(); $denuncia->user()->associate(Auth::user()); $denuncia->obra()->associate($obra); $denuncia->name = $request->input('denuncia'); if ($request->input('comentario')) { $comentario = Comentario::findOrFail($request->input('comentario')); $denuncia->comentario()->associate($comentario); } $denuncia->save(); return Redirect::to("/view/{$obra->id}")->withMessage('mensagem', 'Sua denúncia será analisada!'); }