2011-08-02 20 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