Foros del Web » Programando para Internet » PHP » Symfony »

[SOLUCIONADO] evitar render controller

Estas en el tema de evitar render controller en el foro de Symfony en Foros del Web. Hola amigos, les explico mi caso: Tengo el siguiente controlador: Código: /** * Show profile user * * @Route("/community/user/{username}", name="fos_user_community_user") */ public function userAction($username) { ...
  #1 (permalink)  
Antiguo 09/07/2016, 04:59
 
Fecha de Ingreso: abril-2013
Mensajes: 75
Antigüedad: 11 años, 6 meses
Puntos: 2
evitar render controller

Hola amigos, les explico mi caso:

Tengo el siguiente controlador:

Código:
    /**
     * Show profile user
     * 
     * @Route("/community/user/{username}", name="fos_user_community_user")
     */
    public function userAction($username)
    {
        $userManager = $this->get('fos_user.user_manager');
        $user = $userManager->findUserByUsername($username);
        
        return $this->render('FOSUserBundle:Community:show.html.twig', array(
            'user' => $user
        ));
    }
El cual genera una página que imprime la información del usuario. Además, en esta misma página existe un sidebar que imprime enlaces a 6 usuarios de forma aleatoria llamando a través del método aleatoryAction(), cómo podéis ver:

Código:
<div class="row">
    <div class="col-sm-9">
        <!-- User info -->
    </div>
    <div class="col-sm-3">
        <!-- Display aleatory users -->
        {{ render(controller('UserBundle:Community:aleatory')) }}
    </div>
</div>
El controlador que genera aleatoriamente es:

Código:
    /**
     * Choose aleatory users
     * 
     * @Route("/community/display-aleatory", name="fos_user_community_aleatory")
     */
    public function aleatoryAction()
    {
        $userManager = $this->get('fos_user.user_manager');
        $numberOfUsers = count($userManager->findUsers());
        $users = Array();
        
        // randomize all users
        $rand = range(1, $numberOfUsers); 
        shuffle($rand);
        
        for ($i = 1; $i <= $this->container->getParameter('max_users_to_display'); $i++) {
            $user = $userManager->findUserBy(array(
                'id'=>$rand[$i]
            ));
            array_push($users, $user);
        }
        
        return $this->render('FOSUserBundle:Community:displayAleatory.html.twig', array(
            'users' => $users,
        ));
    }
Todo lo explicado funciona correctamente. Pero quiero evitar que el usuario introduzca en la barra de dirección /community/display-aleatory , ya que de este modo generaría ese fragmento de la página, no habiendo estilos, etc.
Podría de alguna manera redirigir estos casos? Y cómo?

Gracias por adelantado
  #2 (permalink)  
Antiguo 09/07/2016, 15:59
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Mensaje Respuesta: evitar render controller

Hola Weltxo,

si no me equivoco tan solo tienes que eliminar la anotacion @Route del metodo aleatoryAction() y de esta forma ya no estara disponible para los usuarios.

Pruebalo y si puedes confirmame que con eso te funcionó. Gracias!
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #3 (permalink)  
Antiguo 10/07/2016, 06:54
 
Fecha de Ingreso: abril-2013
Mensajes: 75
Antigüedad: 11 años, 6 meses
Puntos: 2
Respuesta: evitar render controller

Ha funcionado. Muchas gracias!

Etiquetas: controller, render
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:32.