如何使用 CakePHP 3 构建具有多个查询 (?) 参数的 Url
How to build a Url with multiple query (?) params with CakePHP 3
我正在为自动完成某些字段进行重定向,我正在使用简单的 javascript。
我想打印一个没有 A 标签的 URL,然后我使用了 Url 生成器。我已经在 Router class 中查看了此方法的文档并查看了源代码,但我看到了一些我无法理解的内容。
当我将 Url 构建器与此代码一起使用时一切正常:
<?= $this->Url->build(['controller' => 'places', 'action' => 'add', '?' => ['event_id' => $event->id]]) ?>
Url 遗传是:
/places/add?event_id=1
但是,当我在 ?查询,我在 url 中得到一个 &,但我没有在文档中找到用于限制特殊字符过滤器的内容。
<?= $this->Url->build(['controller' => 'places', 'action' => 'add', '?' => ['from' => 'events','id' => $event->id]])
// Generates: /places/add?from=events&id=1
// I want: /places/add?from=events&id=1
?>
有没有 & 的选项?如果我把所有的都放在一个字符串中,我会得到 UTF 代码 %5D 和那些。我在 javascript window.open 中使用 url,然后我没有在 html 正文中打印。
我在http://api.cakephp.org/3.0/source-class-Cake.Routing.Router.html#509-646中看到第597行,但我不明白$url = static::_applyUrlFilters($url);代码正在改变一些东西。
谢谢!
URL 帮助程序用于生成 URL 以用于标记上下文,因此它们使用 h()
函数进行实体编码。
如果您需要普通的 URLs,请不要使用 URL 帮助程序,而是使用 Router::url()
方法。
use Cake\Routing\Router;
Router::url([
'controller' => 'places',
'action' => 'add',
'?' => [
'from' => 'events',
'id' => $event->id
]
]);
我正在为自动完成某些字段进行重定向,我正在使用简单的 javascript。
我想打印一个没有 A 标签的 URL,然后我使用了 Url 生成器。我已经在 Router class 中查看了此方法的文档并查看了源代码,但我看到了一些我无法理解的内容。
当我将 Url 构建器与此代码一起使用时一切正常:
<?= $this->Url->build(['controller' => 'places', 'action' => 'add', '?' => ['event_id' => $event->id]]) ?>
Url 遗传是:
/places/add?event_id=1
但是,当我在 ?查询,我在 url 中得到一个 &,但我没有在文档中找到用于限制特殊字符过滤器的内容。
<?= $this->Url->build(['controller' => 'places', 'action' => 'add', '?' => ['from' => 'events','id' => $event->id]])
// Generates: /places/add?from=events&id=1
// I want: /places/add?from=events&id=1
?>
有没有 & 的选项?如果我把所有的都放在一个字符串中,我会得到 UTF 代码 %5D 和那些。我在 javascript window.open 中使用 url,然后我没有在 html 正文中打印。
我在http://api.cakephp.org/3.0/source-class-Cake.Routing.Router.html#509-646中看到第597行,但我不明白$url = static::_applyUrlFilters($url);代码正在改变一些东西。
谢谢!
URL 帮助程序用于生成 URL 以用于标记上下文,因此它们使用 h()
函数进行实体编码。
如果您需要普通的 URLs,请不要使用 URL 帮助程序,而是使用 Router::url()
方法。
use Cake\Routing\Router;
Router::url([
'controller' => 'places',
'action' => 'add',
'?' => [
'from' => 'events',
'id' => $event->id
]
]);