/**
  * Da de alta un usuario en la bd
  *
  * @param  Request $request
  * @return redirect
  */
 public function postRegistro(Request $request)
 {
     // Validacion
     $this->validate($request, ['email' => 'required|unique:usuarios|email|max:255', 'username' => 'required|unique:usuarios|alpha_dash|max:20', 'password' => 'required|min:6']);
     // Crear un usuario a partir del modelo
     User::create(['email' => $request->input('email'), 'username' => $request->input('username'), 'password' => bcrypt($request->input('password'))]);
     // Devolver la vista
     return redirect()->route('home')->with('info', 'Has creado tu cuenta correctamente! Ya puedes iniciar sesión.')->with('info_important', true);
 }
 /**
  * Eliminar la relacion de amistad con un usuario.
  *
  * @param  string $username
  * @return redirect
  */
 public function postDelete($username)
 {
     $user = User::where('username', $username)->first();
     // Si no hay amistad entre los usuarios
     if (!Auth::user()->esAmigoDe($user)) {
         return redirect()->back();
     }
     // Eliminar la amistad
     Auth::user()->eliminarAmigo($user);
     return redirect()->back()->with('info', 'Amistad eliminada.')->with('info_important', true);
 }
 /**
  * Muestra la pagina de resultados de busqueda de usuarios.
  *
  * @return view
  */
 public function getResultados(Request $request)
 {
     $query = $request->input('query');
     // Redirijo a la home si no hay consulta de busqueda
     if (!$query) {
         return redirect()->route('home');
     }
     // Hago la consulta de busqueda
     $users = User::where(DB::raw("CONCAT(nombre, ' ', apellidos)"), 'LIKE', "%{$query}%")->orWhere('username', 'LIKE', "%{$query}%")->get();
     // Devuelvo la vista con resultados
     return view('search.resultados')->with('users', $users);
 }
 /**
  * Muestra la pagina de usuario individual.
  *
  * @param  string $username Nombre de usuario almacenado en bd (col 'username')
  * @return view
  */
 public function getPerfil($username)
 {
     // Comprobar que el nombre de usuario existe
     $usuario = User::where('username', $username)->first();
     if (!$usuario) {
         abort(404);
     }
     // Obtener estados del propio usuario autenticado
     $estados = $usuario->estados()->noRespuesta()->get();
     // authUsuarioEsAmigo se usara para mostrar el form de respuesta o no
     return view('profile.index')->with('user', $usuario)->with('estados', $estados)->with('authUsuarioEsAmigo', Auth::user()->esAmigoDe($usuario));
 }