我有一个类似于这个结构的对象:
filters = {
filters: {
categoryFilters: {
mainCategory: value1,
subCategory: value2
}
}
}
我正在使用以下方法通过添加活动过滤器/排序来动态更新URL:
url.searchParams.set('mainCategory', "val1")
window.history.replaceState(null, null, url)
我需要传递具有上面解释的结构的对象,所以我可以在PHP中将其用作关联数组,例如:
$filters = [
"categoryFilters" => [
"mainCategory" => val1,
"childCategory" => val2,
...
]
]
我在没有嵌套属性的情况下向URL添加参数没有问题,但我在这一点上遇到了困难。目标是从URL中获取数据,因此URL的接收方(例如通过复制粘贴)将获得与发送方相同的结果。
我用的是Symfony。
1条答案
按热度按时间emeijp431#
这比看起来要容易,尽管如果您可以将对象传递给
URLSearchParams
,它会为您解析,那就更好了。但是,您需要做的就是使用方括号(没有引号)解析每个唯一路径,并添加为具有关联值的参数键:
可以编写一个函数来从一个对象执行此操作,但这就是它要做的(线性化数组的唯一键路径),然后将其追加(如
URLSearchParams
)或设置(如您的示例)。