2011-12-24 27 views
10

Estoy usando Yii.
si mi URL es http://localhost/evengee/event/page/id/2/sfn+master/?tab=3 Mi verdadera URL (ruta de archivo) sólo es http://localhost/evengee
¿Cómo iba a obtener, de preferencia en la vista:¿Cómo obtengo la url actual sin params en Yii?

  1. URL completa http://localhost/evengee/event/page/id/2/sfn+master/?tab=3
  2. URL sin parámetros explícitos http://localhost/evengee/event/page/id/2/sfn+master/

Sé que puedo dividir/explotar str_replace por? y use $ _SERVER. Preferiría usar métodos nativos Yii.

Respuesta

17

Por:

  • URL completa (http://localhost/even/page/id/2/?t=3) utiliza Yii::app()->request->getUrl(),

  • URL sin parámetros (http://localhost/even/page/id/2/ uso Yii::app()->request->getPathInfo().

El segundo le dará la URL sin esquema, servidor y cadena de consulta. Esto parece lo suficientemente bueno.

+3

intento 'Yii :: app() -> request-> getUrl()', pero esto no devolvió el nombre de dominio. – GusDeCooL

+0

Utilice createAbsoluteUrl si desea el nombre de dominio completo. '$ this-> createAbsoluteUrl (Yii :: app() -> request-> getUrl());' O 'Yii :: app() -> createAbsoluteUrl (Yii :: app() -> request-> getUrl()); ' –

4

Para obtener la URL completa, utilice el método de CHttpRequest Yii::app()->request->getRequestUrl();

getRequestUrl() Puede obtener el controlador, el módulo y la acción nombre de la página actual a partir de los métodos CApplication Yii::app()->getController()->id; //gets you the controller id

Yii::app()->getController()->getAction()->id; //gets you the action id

Puede juntar una URL utilizando la propiedad baseURL de CApplication

Yii::app()->baseURL

+4

CHttpRequest y sus comportamientos no tienen un método o cierre llamado "getRequestUrl". debería ser un 'yo' no un 'l' – glyph

+0

Debe ser Yii :: app() -> request-> getUrl(); –

Cuestiones relacionadas