我正在开发一个 Web 应用程序,其中用户拥有个人资料以及与该个人资料相关的技能。我想开发一个页面,用户可以在其中查看与特定技能对应的所有配置文件。例如,如果我想查看所有具有“HTML”技能的用户,我可以使用http://site.com/skills/HTML
. 很简单。
我已经让它工作了,但是有些用户具有空格技能(例如project management
),有些用户具有特殊字符(例如C#
)。当我浏览到类似的 URLhttp://site.com/skills/C#
时,Cake 会自动生成它,http://site.com/skills/C
因为它会解析特殊字符(#
在本例中)。
如何安全地允许 URL 中包含特殊字符的技能?这是我目前正在使用的操作:
public function view($name) {
// Find skill using $name
$skill = $this->Skill->find('first', array(
'conditions' => array('Skill.name' => $name)
));
if(!$skill) {
// Skill doesn't exist, return 404
// TODO: route to 404 page
throw new NotFoundException();
}
$this->set('skill', $skill);
}