2

在下面的页面上说可以对 Request::getQuery() 方法使用过滤器:http: //docs.phalconphp.com/en/latest/api/Phalcon_Http_Request.html

但不幸的是,我无法找到有关如何设置它们的信息。你能帮忙吗?我需要在这里只过滤数字值:

// $filter = ??
$offset = $this->request->getQuery('offset', $filter);

在文档中,据说值可以是字符串或数组,在哪里可以看到可用的过滤器列表?

4

2 回答 2

3

有几种方法可以做到这一点

在控制器中通过直接应用过滤器getQuerygetPost

$offset = $this->request->getQuery('offset', 'int');

或通过调用sanitize您想要的过滤器的功能(甚至自定义过滤器)

$filter = new \Phalcon\Filter();

$offset = $filter->sanitize($_GET["offset"], "int");

// or
$offset = $filter->sanitize($request->getQuery("offset"), "int");

// or
$offset = $request->getQuery("offset", "int");

如果传递的参数为null,也可以设置一个默认值(下面4为默认值)

$offset = $request->getQuery('offset', 'int', 4);
于 2012-12-15T23:36:57.123 回答
0

刚刚找到这个页面:

http://docs.phalconphp.com/en/0.7.0/reference/filter.html

答案很简单:没有正则表达式,只有字符串“int”

于 2012-12-15T23:17:24.790 回答