2017-08-13 94 views
1

我可以看到參數填充,當我轉儲($請求 - >請求)Symfony的3.3.6請求參數

ParameterBag {#69 ▼ 
    #parameters: array:1 [▼ 
    "form" => array:8 [▼ 
     "phone" => "2042333233" 
     "price" => "72" 
     "region" => "1" 
     "accept_terms" => "1" 
     "_token" => "XXX" 
    ] 
    ] 
} 

但是,當我嘗試訪問的參數:

$request->get('phone') 
$request->request->get('phone') 

該請求是從一個POST填充 - 所以後者應該工作,但結果爲空?

+0

您是否使用了Symfony的形式或硬編碼的形式? –

+0

硬編碼(動態)形式 - 我認爲這是通過調用createFormBuilder()而不是createForm()來實現的。有不同的方法嗎? –

+0

向我們展示你的表單是什麼樣的 - 如果你使用的是表單/表單構建器,那麼檢索數據比直接通過'Request'對象獲得更好的方法 –

回答

0

試試這個:

$request->request->get('form')['phone'] 
+0

那是什麼 - 但我不確定我明白爲什麼?我看到的官方文檔都沒有顯示出這一點 - 我錯過了什麼? –

+0

因爲你的'phone'值已經變成'array'形式 –

+0

表單組件是如何生成元素名稱的。表單組件支持嵌套表單,因此它需要一個數組來正確映射所有內容。從瀏覽器中,使用ctrl-u查看生成的html代碼。可能會讓事情更清楚些。 – Cerad