...或者我是否必须按照以下方式对它们进行消毒?
class RelationshipController extends Controller
{
...
public function deleteAction($objectId)
{
$objectId = filter_var($objectId, FILTER_SANITIZE_NUMBER_INT)
...
答案 0 :(得分:6)
默认情况下,Symfony Router通过以下正则表达式匹配路由参数:[^/]+
。因此,除/
之外的任何内容都是允许的。
如果你想确保$objectId
是一个整数,你应该像这样定义一条路线:
my_route:
path: /my/route/{objectId}
defaults: { _controller: MyBundle:Controller:myAction }
requirements:
objectId: \d+
这样,您的$objectId
将始终是整数的字符串表示形式,因为如果它不是,则Symfony将不匹配路径。
所以这将匹配你的控制器:
GET /my/route/234
这将抛出404未找到:
GET /my/route/asd