CakePHP 3:缺少 HTMLHelper:url

CakePHP 3: HTMLHelper:url missing

我目前正在将应用程序升级到 CakePHP 3。在 CakePHP 2 中,我使用 HTMLHelper::url 为按钮等生成指向 controllers/actions 的链接。

像这样:

<form class="navbar-form navbar-left form-signin" action="<?php echo $this->HTML->url(array(
    "controller" => "users",
    "action" => "login")); ?>" method="post">

如您所见,我正在使用 $this->HTML->url() 生成指向我的 controller/actions 的链接。在 CakePHP 3 中缺少 HTMLHelper::url()。文档和迁移指南都没有提到它。在 Cake 3 中还有其他生成链接的方法吗?

谢谢! 亚历克斯

您可以使用 Router::url() 方法获取操作 url。所以只需按如下方式更改您的行:

<form class="navbar-form navbar-left form-signin" action="<?php echo Router::url(array("controller" => "users", "action" => "login")); ?>" method="post">

顺便问一下,你为什么不使用 FormHelper 来生成你的表单?

阅读迁移指南: http://book.cakephp.org/3.0/en/appendices/3-0-migration-guide.html#view-helper

Helper::url() is now available as Cake\View\Helper\UrlHelper::build().

要创建 link,您可以使用 cakephp

link 方法
Cake\View\Helper\HtmlHelper::link(string $title, mixed $url = null, array $options =[])

为您上面提到的代码试试这个

<form class="navbar-form navbar-left form-signin" action="<?php echo $this->HTML->link(array(
    "controller" => "users",
    "action" => "login")); ?>" method="post">