我正在使用cakephp url HTML helper,如下所示:
<?php echo $this->Html->url(array('controller' => 'communities', 'action' => 'view'), true); ?>
但是,它正在撤回以下网址:http://127.0.0.1:8888/communities/view 这个127.0.0.1:8888在哪里?我怎么能改变它?
PS:如果我删除第二个参数的'true',则不会发生这种情况。
答案 0 :(得分:1)
您正在返回控制器URL地址。第二个参数说,那个路径应该是相对的。 控制器地址是“社区/视图”,但第二个参数(相对=假)是http://127.0.0.1:8888/communities/view
答案 1 :(得分:1)
Html::url()
方法的第一个参数是CakePHP URL数组,第二个参数是一个布尔值,指示是否应返回完整(绝对)URL。
在你的情况下,
<?php
echo $this->Html->url(array('controller' => 'communities', 'action' => 'view'), true);
?>
显示网址
http://127.0.0.1:8888/communities/view
因为您通过将第二个参数设置为true表示您想要完整的绝对URL,所以您在localhost(IP地址127.0.0.1)上运行该站点并使用端口8888(:8888部分)。
如果您使用
<?php
echo $this->Html->url(array('controller' => 'communities', 'action' => 'view'));
?>
您只会看到/communities/view
,因为第二个参数未设置且默认为false。
当第二个参数设置为true时,它始终显示基于运行该应用程序的域的完整绝对URL。因此,当您将网站上传到生产环境时,Html::url()
会返回http://www.example.com/communities/view
,例如。
如果您检查API,则可能无法在HtmlHelper页面上找到url方法。这是因为HtmlHelper实际上从Helper类(http://api.cakephp.org/file/cake/libs/view/helper.php#method-Helperurl)继承了该方法。