/** * Acessor para pegar uma Collection de Perfil ordenados pela quantidade de seguindo em comum * @return Collection */ public function getSugestaoBySeguindoEmComumAttribute() { //Collection com todos os perfils que eu nao sigo $colNaoSeguindo = Perfil::all()->diff($this->followPerfil)->diff([$this]); $seguindo = $this->followPerfil; foreach ($colNaoSeguindo as $key => $perfil) { //Se esse perfil seguir outras pessoas, checo so seguindo desse perfil $seguindoDessePerfil = $perfil->followPerfil; if ($seguindoDessePerfil) { $seguindoEmComum = $seguindoDessePerfil->intersect($seguindo); } //Adicionando o parametro quantidadeSeguidores em comum em cada perfil da collection $perfilRetorno = $colNaoSeguindo->find($perfil->id); if ($perfilRetorno) { $perfilRetorno->quantidadeSeguindoEmComum = count($seguindoEmComum); } } //Ordenando a collection $colNaoSeguindo = $colNaoSeguindo->sortBy(function ($item) { return $item->quantidadeSeguindoEmComum; })->reverse(); return $colNaoSeguindo; }
/** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function perfilView() { $perfiles = Perfil::all(); return view('asignarPerfil')->with('perfiles', $perfiles); }