Basis_url in CakePHP


Answers

Verwenden Sie jede Option unten

  1. <?php echo $this->Html->url('/');?>

  2. <?php Router::url('/', true); ?>

  3. <?php echo $this->base;?>

  4. <?php echo $this->webroot; ?>

  5. Definiere eine Konstante in Config / core.php als define("BASE_URL", "www.yoursite.com/"); und benutze BASE_URL überall in deinem Projekt

und erstellen Sie einen gemeinsamen Helfer mit folgenden Funktionen

<?php
class CommonHelper extends AppHelper {

    function get_url($url){
        return BASE_URL.$url;
    }

    function get_src($url){
        echo BASE_URL.$url;
    } 
}
?>

und überall im Projekt verwenden

$this->redirect($this->Common->get_url("login");

<a href="<?php $this->Common->get_src('users/login');?>">login</a>

Vergessen Sie nicht, Common Helper im Controller einzubinden

Ich empfehle Methode 2 und 5, weil sie vollständige URL geben.

Question

In den meisten Webanwendungen benötigen wir die globale var base_url. In cakephp, um base_url zu bekommen, setze ich den folgenden Code auf die beforeRender-Methode in app_controller.php

function beforeRender(){
    $this->set('base_url', 'http://'.$_SERVER['SERVER_NAME'].Router::url('/'));
}

Gibt es eine Alternative? Mittel Gibt es eine globale Variable zur Verfügung, um die Basis-URL eher als diese zu erhalten?