/** * Lista as cidades dos estados que o usuário tem permissão * * @return mixed */ public function cidade() { //TODO -> Fazer a lista de estados antes da lista de cidades return Cidade::whereIn('estado_id', Estado::permitidos(Auth::user())->lists('id'))->get(); }
/** * Metodo para filtrar Vagas por POST, * @param categoriaOng -> id da categoria a ser usada no filtro * @param nome -> nome a ser usado no filtro * @param cidade_id -> id da cidade a ser usado no filtro */ public function postFiltrarvagas() { $categoriaVaga = Request::get('filtro_categoria'); $cidade_id = Request::get('filtro_cidade'); $filtro_ong = Request::get('filtro_ong'); $categorias = Vaga::getCategoriasComVagas(); $cidades = Vaga::getCidadesComVagas(); $ongs = Vaga::getOngsComVagas(); $causas = new Collection(); //Montando array de ongs para select $ongsArray = array(null => 'Projeto'); foreach ($ongs as $ong) { $ongsArray[$ong->id] = $ong->nome; } $ongs = $ongsArray; //Montando array de cidades para select $cidadesArray = array(null => 'Cidade'); foreach ($cidades as $cidade) { $cidadesArray[$cidade->id] = $cidade->nome; } $cidades = $cidadesArray; //Montando array de categorias para select $categoriasArray = array(null => 'Categoria'); foreach ($categorias as $categoria) { $categoriasArray[$categoria->id] = $categoria->nomeTraduzido; } $categorias = $categoriasArray; //Filtrando resultados pelas categorias if ($categoriaVaga && $categoriaVaga != "null") { $vagasByCategoria = CategoriaVaga::findOrFail($categoriaVaga)->vagas; $causas = $causas->merge($vagasByCategoria); } //Filtrando resultados por Cidade if ($cidade_id) { $vagasByCidade = Cidade::findOrFail($cidade_id)->vagas; //Se ja tiver filtrado, entao interseccionar os //resultados para maior relevancia if (count($causas)) { $causas = $causas->intersect($vagasByCidade); } else { $causas = $causas->merge($vagasByCidade); } } if ($filtro_ong) { $causasByOng = Ong::findOrFail($filtro_ong)->vagas; if (count($causas)) { $causas = $causas->intersect($causasByOng); } else { $causas = $causas->merge($causasByOng); } } if (!$cidade_id && (!$categoriaVaga || $categoriaVaga == "null") && !$filtro_ong) { $causas = Vaga::all(); } return view('cuidar.vagas', compact('causas', 'categorias', 'cidades', 'ongs')); }
public function edit($id = 0) { $ong = Ong::findOrFail($id); $user = Auth::user(); //Verificando se usuario logado é owner da ong atual //TODO: Model de permissoes.. if ($ong->user->id != $user->id) { //Criar mensagens de erro padrão em configurações?? App::abort(403, 'Ops, aparentemente voce não tem permissão para editar as informações dessa Ong'); } $foto = $ong->getAvatarUrl(); $fotoCapa = $ong->getCapaUrl(); $categoriaSelecionada = $ong->categoria ? $ong->categoria->id : null; $categoriasOngs = CategoriaOng::all(); $cidadeSelecionada = $ong->cidade ? $ong->cidade->id : null; $estadoSelecionado = $ong->estado ? $ong->estado->id : null; $nome = $ong->nome; //Ordenando array de cidades para ficar cidadeID => cidadeNome $cidades = Cidade::all()->keyBy('id'); foreach ($cidades as $cidade) { $cidadesArray[$cidade->id] = $cidade->nome; } $cidades = $cidadesArray; //Ordenando array de estados para ficar estadoID => estadoNome $estados = Estado::all(); $estadosArray = array(0 => 'Estado'); foreach ($estados as $estado) { $estadosArray[$estado->id] = $estado->nome; } $estados = $estadosArray; //Trocando entidadeAtiva para essa ong Session::put('entidadeAtiva_id', $ong->id); Session::put('entidadeAtiva_tipo', 'ong'); $ong->url = $ong->getUrl(); return view('ong.edit', compact('user', 'ong', 'foto', 'fotoCapa', 'nome', 'categoriaSelecionada', 'categoriasOngs', 'cidades', 'estados', 'cidadeSelecionada', 'estadoSelecionado')); }
/** * Show the form for editing the specified resource. * * @param int $id * @return Response */ public function edit($id) { $vaga = Vaga::findOrFail($id); $categoriaSelecionada = $vaga->categoria ? $vaga->categoria->id : null; $cidadeSelecionada = $vaga->cidade ? $vaga->cidade->id : null; $estadoSelecionado = $vaga->estado ? $vaga->estado->id : null; //@TODO: Arranjar meio seguro de pegar ongs, se alguma outra entidade for owner talvez de problema. $ongSelecionada = $vaga->owner->id; if (!$vaga->podeEditar) { App::abort(403, "Voce não tem permissao para editar essa Vaga"); } //Obtendo ongs do usuario $ongs = Auth::user()->ongs; //Montando array de ongs para select $ongsArray = array(0 => 'Projeto'); foreach ($ongs as $ong) { $ongsArray[$ong->id] = $ong->nome; } $ongs = $ongsArray; $categoriasVaga = CategoriaVaga::all(); //Ordenando array de cidades para ficar cidadeID => cidadeNome $cidades = Cidade::all()->keyBy('id'); foreach ($cidades as $cidade) { $cidadesArray[$cidade->id] = $cidade->nome; } $cidades = $cidadesArray; //Ordenando array de estados para ficar estadoID => estadoNome $estados = Estado::all(); $estadosArray = array(0 => 'Estado'); foreach ($estados as $estado) { $estadosArray[$estado->id] = $estado->nome; } $estados = $estadosArray; return view('vaga.edit', compact('vaga', 'categoriasVaga', 'ongs', 'cidades', 'estados', 'categoriaSelecionada', 'cidadeSelecionada', 'estadoSelecionado', 'ongSelecionada')); }
public function getCidades($idEstado) { $cidades = Cidade::where('estado', $idEstado)->get(['id', 'nome']); return response()->json($cidades); }
public function search($type, $val) { if ($type == "0") { $cidades = Cidade::where('nome', $val)->paginate($this->max_rows); } elseif ($type == "1") { $cidades = Cidade::where('nome', 'LIKE', $val . '%')->paginate($this->max_rows); } elseif ($type == "2") { $cidades = Cidade::where('nome', 'LIKE', '%' . $val . '%')->paginate($this->max_rows); } else { $cidades = Cidade::where('nome', $val)->paginate($this->max_rows); } return view('main', ['cidades' => $cidades]); }