我在我的services.ctp文件中有这段代码,它以前在CakePHP 2.3.10中工作得很好。
services.ctp
href="<?php echo $this->webroot . 'intro/services/1'; ?>
我刚刚将这个文件复制到CakePHP 3.0.0中,它不再工作,并抛出以下错误消息错误:无法找到C:\apache2\htdocs\myprojxxxx\webroot\帮助程序。这个$this->webroot在CakePHP 3.0中有什么不同?救命啊!
$this->webroot
holgip5t1#
您需要使用以下命令:
href="<?php echo $this->request->webroot . 'intro/services/1'; ?>
这将与cakephp 3.0一起工作
rqqzpn5f2#
在cakephp 4.x中,你需要使用以下代码:
href="<?php echo $this->Url->webroot.'/intro/services/1'; ?>
bakd9h0s3#
这不是您一开始就应该做的,因为与URL数组相比,这种“硬编码”URL非常不灵活,在URL数组中,连接的路由在应用程序中的单个点定义生成的URL,允许您轻松地进行更改,而不必在整个应用程序中应用修改。也就是说,神奇的$webroot属性已经消失(请查看迁移指南),它的值可以通过**View::$request对象**直接检索。不过,您应该改用Router::url()、UrlHelper或其中一个HtmlHelper方法:第一个另请参阅
$webroot
View::$request
Router::url()
UrlHelper
HtmlHelper
*操作手册〉路由〉生成URL
*Cookbook〉视图〉帮助程序〉Html〉创建链接
esyap4oy4#
形成我在蛋糕3.9工作:
<img src="<?php echo $this->Url->build('/img/logo_app.png'); ?>" style="width:250px" />
4条答案
按热度按时间holgip5t1#
您需要使用以下命令:
这将与cakephp 3.0一起工作
rqqzpn5f2#
在cakephp 4.x中,你需要使用以下代码:
bakd9h0s3#
这不是您一开始就应该做的,因为与URL数组相比,这种“硬编码”URL非常不灵活,在URL数组中,连接的路由在应用程序中的单个点定义生成的URL,允许您轻松地进行更改,而不必在整个应用程序中应用修改。
也就是说,神奇的
$webroot
属性已经消失(请查看迁移指南),它的值可以通过**View::$request
对象**直接检索。不过,您应该改用
Router::url()
、UrlHelper
或其中一个HtmlHelper
方法:第一个
另请参阅
*操作手册〉路由〉生成URL
*Cookbook〉视图〉帮助程序〉Html〉创建链接
esyap4oy4#
形成我在蛋糕3.9工作: