php - link - url helper full
base_url en CakePHP (6)
Para la mayoría de los propósitos, sugiero usar CakePHP HtmlHelper para generar URL, de esa manera no tendrá que preocuparse por la URL base. Sin embargo, la manera más amigable para el usuario de obtener la URL base en su vista sería <?php echo $html->webroot; ?>
<?php echo $html->webroot; ?>
.
En la mayoría de las aplicaciones web necesitamos global var base_url. En cakephp para obtener base_url actualmente pongo el siguiente código antes del método Render en app_controller.php
function beforeRender(){
$this->set(''base_url'', ''http://''.$_SERVER[''SERVER_NAME''].Router::url(''/''));
}
¿Hay alguna alternativa? Significa ¿hay alguna variable global disponible para obtener la url base en lugar de esto?
Puede usar Router::fullBaseUrl()
Si tiene, por ejemplo, example.com/test y desea ignorar / probar, puede usar ''full'' => false. Además, si desea forzar ssl, puede agregar ''_ssl'' => true.
es decir
Router::fullBaseUrl(null, [ ''_ssl'' => true, ''full'' => false]
Asegúrese de pasar null como primer parámetro, ya que esta es la url base en caso de que quiera pasarla.
nota: necesita importar el enrutador para que pueda usar la función anterior:
use Cake/Routing/Router
Puedes utilizar
<?php echo Router::fullbaseUrl();?>
también.
Consulte http://book.cakephp.org/2.0/en/core-libraries/global-constants-and-functions.html para obtener más detalles.
Sí hay. En su opinión, puede acceder a:
<?php echo $this->webroot; ?>
Además, su información de host se almacena en la variable $_SERVER[''HTTP_HOST'']
en caso de que quiera eso.
En su controlador, si quiere URL completas, use esto:
Router::url(''/'', true);
Use Router::url(''/'', true)
en cualquier lugar de su aplicación.
Específicamente en la Vista, puede usar $this->Html->url(''/'', true)
(o cualquier otro Helper, de hecho, el método Helper::url
es heredado por todos los Helpers), que es solo un contenedor para el método de Router
anterior.
En cualquier caso, el segundo parámetro true
hace que devuelva la URL completa.
Use cualquiera de las siguientes opciones
<?php echo $this->Html->url(''/'');?>
<?php Router::url(''/'', true); ?>
<?php echo $this->base;?>
<?php echo $this->webroot; ?>
Definir constante en Config / core.php como
define("BASE_URL", "www.yoursite.com/");
y usaBASE_URL
en cualquier parte de tu proyecto
y crea un ayudante común con las siguientes funciones
<?php
class CommonHelper extends AppHelper {
function get_url($url){
return BASE_URL.$url;
}
function get_src($url){
echo BASE_URL.$url;
}
}
?>
y usar en cualquier lugar del proyecto
$this->redirect($this->Common->get_url("login");
<a href="<?php $this->Common->get_src(''users/login'');?>">login</a>
No olvides incluir Common helper en el controlador
Recomiendo el método 2 y 5 porque dan url completo.