私は、ユーザーがプロファイルとそのプロファイルに関連するスキルを持っているWebアプリケーションを開発しています。特定のスキルに対応するすべてのプロファイルをユーザーが表示できるページを開発したいと思います。たとえば、「HTML」のスキルを持つすべてのユーザーを表示したい場合は、を使用できますhttp://site.com/skills/HTML
。ものすごく単純。
私はそれを機能させましたが、一部のユーザーはスペースのスキルを持っていて(たとえばproject management
)、一部のユーザーは特殊文字を持っています(たとえばC#
)。のようなURLを参照するとhttp://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);
}