base_url在蛋糕PHP
在大多数Web应用程序中,我们需要全局变量base_url。在cakephp中,为了获得base_url目前我把下面的代码放在app_controller.php
function beforeRender(){
$this->set('base_url', 'http://'.$_SERVER['SERVER_NAME'].Router::url('/'));
}
还有其他选择吗?意味着是否有任何全局变量可用于获取基本 URL 而不是这个?
在大多数Web应用程序中,我们需要全局变量base_url。在cakephp中,为了获得base_url目前我把下面的代码放在app_controller.php
function beforeRender(){
$this->set('base_url', 'http://'.$_SERVER['SERVER_NAME'].Router::url('/'));
}
还有其他选择吗?意味着是否有任何全局变量可用于获取基本 URL 而不是这个?
是的,有。在您看来,您可以访问:
<?php echo $this->webroot; ?>
此外,您的主机信息存储在变量中,以防万一。$_SERVER['HTTP_HOST']
在控制器中,如果您想要完整的 URL,请使用以下命令:
Router::url('/', true);
使用下面的任何人选项
<?php echo $this->Html->url('/');?>
<?php Router::url('/', true); ?>
<?php echo $this->base;?>
<?php echo $this->webroot; ?>
在配置/核心中定义常量.php,并在项目中的任何位置使用define("BASE_URL", "www.yoursite.com/");
BASE_URL
并使用以下函数创建一个通用助手
<?php
class CommonHelper extends AppHelper {
function get_url($url){
return BASE_URL.$url;
}
function get_src($url){
echo BASE_URL.$url;
}
}
?>
并在项目中的任何位置使用
$this->redirect($this->Common->get_url("login");
<a href="<?php $this->Common->get_src('users/login');?>">login</a>
不要忘记在控制器中包含常用助手
我推荐方法2和5,因为它们给出了完整的url。