2011-08-02 68 views
2

在PHP中,我会这样做将'points'作为多维数组。在Perl/Catalyst中通过POST的多维和关联数组(散列)

<input type"text" name="points[0][1]" /> 
<input type"text" name="points[0][2]" /> 
<input type"text" name="points[1][1]" /> 
<input type"text" name="points[2][2]" /> 

或者,如果我想获得“点”作为关联数组:

<input type"text" name="point[x_axis]" /> 
<input type"text" name="point[y_axis]" /> 

什么是催化剂/ Perl的等效这样的事情? 我怎样才能通过$ c-> req-> params获取这些内容?

+3

我迫不及待地将'name ='points [100000000]“'发送到PHP脚本!或者是否有支票? – ikegami

+1

@ikegami由于PHP中的所有数组都是秘密的(有序的)关联数组,因此它比看起来更无害 - 您将得到一个包含一对数组的对象。 – hobbs

回答

6

这不是开箱即用的 - Catalyst不会对参数名称进行任何映射,如果它们出现一次,则将值映射到标量,如果出现多次,则映射到标量。但是,您可以申请的请求特征为Catalyst::TraitFor::Request::Params::Hashed,它将hashed_params,hashed_query_paramshashed_body_params方法添加到$c->request,这些方法的行为几乎与您想要的一样。

+0

谢谢。那正是我所期待的。 – nsbm