2017-03-03 42 views
1

有什麼辦法從Request類獲取合併數據?因爲目前我們手動爲接受POST和GET查詢的API控制器提交表單(這是因爲傳統項目而不是REST API)。Symfony形式手動提交GET和POST請求

$data = array_merge($request->query->all(), $request->request->all()); 
$form->submit($data); 

有沒有什麼辦法可以寫下清潔而不是代碼如下?

$data = array_merge($request->query->all(), $request->request->all()); 

回答

1

我認爲這是不可能(也許我錯了)

如果你看一下source code of Request,你可以看到,當Symfony的創建要求,Symfony的把全局變量$_GET$this->query$_POST$this->request
沒有Symfony變量可以同時使用這兩個變量。

如果你只需要在一個地方,我認爲你所做的很好。

如果沒有,請創建一個服務或其他解決方案來影響此代碼。

另一種解決方案是使用全局變量$_REQUEST,因爲symfony讓merge,但它取決於你的PHP配置(request_order參數你php.ini的)。
但使用Superglobals變量與Symfony的,我不認爲這是一個好主意......(除了symfony的overwrites他們)

+0

如果您需要在多個地方做的話,我會建議創建一個註釋。 – Terenoth

+0

@Terenoth哪個註釋和它應該做什麼? –

+0

@SergeySmirnov我的意思是一個自定義註釋。看看這個教程:https://www.sitepoint.com/your-own-custom-annotations/ – Terenoth