3

我有一个简单的 cakePHP 操作,可以通过 url 参数查找某人通过其标题发布的帖子。:最近,有一篇帖子在标题中包含一个冒号( ),蛋糕被解释为一个命名参数。

虽然用

str_replace(':', 'BANANA!_replace_colons, YAY safenow', $name)

我很好奇是否有标准或更优雅的方式来做到这一点。

4

2 回答 2

1

如果你想在 url 中传递它,你总是可以对标题进行 urlencode。

如果帖子标题是“foo:bar”而不是

/post/foo:bar

你应该有

/post/foo%3Abar

因为稍后您可能有一个包含斜线的帖子标题,/并且您必须添加另一个 str_replace... 或者可能会有带有重音符号的字符。

在我的情况下,我总是在表格上有一个名为“title_url”的第二个字段,它是标题的Slug,我title_url在 url 中使用它。所以在我的例子中,网址是这样的

/post/foo_bar

这比 urlencode 更易于阅读。

但是,路由器上有一个名为“贪婪之星”(/*)和“尾随之星”(/**的选项。即使它们包含特殊字符,它们也会帮助您捕获参数

希望这可以帮助

于 2012-11-07T18:09:34.890 回答
1

我刚刚使用 array('action' => 'view', 'name' => $name); Cake 似乎能够很好地处理第一个冒号之后的所有内容。

于 2012-11-07T18:51:54.063 回答