在Symfony 3参数包中检索深度嵌套的数据

rggaifut  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(89)

在Symfony 2中,你可以这样做来获取嵌套的查询字符串数据:

// mixed getInt(string lookup, mixed default, bool deep)
$request->query->getInt('page[number]', 1, true);

在Symfony 3中,检索深度嵌套数据的功能似乎已经被删除,转而支持检索顶级数组并直接获取数据。

// mixed get(string key, mixed default)
(int) $request->query->get('page', ['number' => 1])['number']

有人能证实我没有遗漏什么吗?这是现在检索参数包中嵌套数据的首选方法?
我确实看过了3.1的文档,所有的例子都引用了数组的检索,没有查询深度嵌套数据的选项。

fdbelqdn

fdbelqdn1#

你可以使用PropertyAccess component

$query = $request->query->all();

$accessor = PropertyAccess::createPropertyAccessor();

$page = (int) $accessor->getValue($query, '[page][number]');
vlurs2pr

vlurs2pr2#

更简单的是

$request->query->all();

这将为您的案例返回一个数组,如:

page => [
   number => 1
]

这适用于所有的symfony版本。

相关问题