我有一个简单的cakePHP动作,它通过url参数查找某人通过它的标题创建的帖子。最近,一个帖子放在标题中包含冒号(:
),该蛋糕被解释为命名参数。
虽然使用
构建网址并不困难str_replace(':', 'BANANA!_replace_colons, YAY safenow', $name)
我很好奇是否有标准或更优雅的方式来做到这一点。
答案 0 :(得分:1)
如果你想在网址中传递它,你可以随时对该标题进行urlencode。
如果帖子标题是“foo:bar”而不是
/post/foo:bar
你应该
/post/foo%3Abar
因为稍后您可能会有一个包含斜杠/
的帖子标题,您将不得不添加另一个str_replace ...或者可能会有带重音的字符。
在我的情况下,我总是在桌子上有一个名为“title_url”的第二个字段,它是标题的Slug,我在网址中使用了这个title_url
。所以在我的例子中,url就像是
/post/foo_bar
比urlencode更具人性化。
但是,路由器上有一个名为"greedy star" (/*
) and the "trailing star" (/**
)的选项。它们将帮助您捕获参数,即使它们包含特殊字符
希望这有帮助
答案 1 :(得分:1)
我刚用数组('action'=>'view','name'=> $ name); 蛋糕似乎能够处理第一个结肠的一切就好了。