2012-08-11 13 views
7

TLDR: ¿Cómo puedo crear una URL en el controlador similar a cómo puedo usar HtmlHelper para crear direcciones URL en una vista?Cómo crear una URL en un controlador como HtmlHelper


Problema:

Quiero imprimir la URL de la acción del controlador, en mi controlador (porque creo mi cadena JSON en mi controlador, no en una vista)

En a View, puedo usar $this->Html->url(), pero ¿qué tal en un controlador?

debo usar constante definida como APP_DIR + nombre del controlador + acción del controlador?)

Respuesta

30

utilizar la clase Router.

$url = Router::url([ 
    'controller' => 'Articles', 
    'action' => 'index', 
    '?' => ['page' => 1], 
    '#' => 'top' 
]); 

o lo mismo, pero en un/escenario simple más común:

$url = Router::url(['controller' => 'Articles', 'action' => 'index']); 

Nota: en Cake2.x, "Artículos" sería minúscula.


CakePHP 2.x Router documentation

CakePHP 3.x 'Generating URLs' documentation

+1

esto debe ser aceptado, funciona muy bien. (usando CakePHP 2.4.5) – CREE7EN

+1

Recuerde usar la clase de enrutamiento: 'use Cake \ Routing \ Router;' –

Cuestiones relacionadas