如何在CakePHP 3.0中获得$this->webroot工作

w8rqjzmb  于 2022-11-12  发布在  PHP
关注(0)|答案(4)|浏览(148)

我在我的services.ctp文件中有这段代码,它以前在CakePHP 2.3.10中工作得很好。

href="<?php echo $this->webroot . 'intro/services/1'; ?>

我刚刚将这个文件复制到CakePHP 3.0.0中,它不再工作,并抛出以下错误消息
错误:无法找到C:\apache2\htdocs\myprojxxxx\webroot\帮助程序。
这个$this->webroot在CakePHP 3.0中有什么不同?
救命啊!

holgip5t

holgip5t1#

您需要使用以下命令:

href="<?php echo $this->request->webroot . 'intro/services/1'; ?>

这将与cakephp 3.0一起工作

rqqzpn5f

rqqzpn5f2#

在cakephp 4.x中,你需要使用以下代码:

href="<?php echo $this->Url->webroot.'/intro/services/1'; ?>
bakd9h0s

bakd9h0s3#

这不是您一开始就应该做的,因为与URL数组相比,这种“硬编码”URL非常不灵活,在URL数组中,连接的路由在应用程序中的单个点定义生成的URL,允许您轻松地进行更改,而不必在整个应用程序中应用修改。
也就是说,神奇的$webroot属性已经消失(请查看迁移指南),它的值可以通过**View::$request对象**直接检索。
不过,您应该改用Router::url()UrlHelper或其中一个HtmlHelper方法:
第一个
另请参阅

*操作手册〉路由〉生成URL


*Cookbook〉视图〉帮助程序〉Html〉创建链接

esyap4oy

esyap4oy4#

形成我在蛋糕3.9工作:

<img src="<?php echo $this->Url->build('/img/logo_app.png');  ?>" style="width:250px" />

相关问题