我用embedded controller來呈現對多個頁面使用的形式:重定向從嵌入式控制器
嫩枝
{% render 'Bundle:Controller:someForm' %}
控制器
public function someFormAction()
{
// Some logic
...
if ($form->isValid()) {
...
$this->get('session')->setFlash('successful', "Woey!");
return $this->redirect($this->generateUrl('homepage'));
}
return $this->render('Bundle:Template:form.html.twig', array('form' => $form->createView()));
}
我要回重定向到主頁表格成功提交後作爲的一部分設計模式。如果我按照上面的描述使用它,我會得到異常,因爲嵌入式控制器的響應是302而不是200(至少我期望它可以像這樣工作)。
在這種情況下可以正常重定向嗎?或者,我是否從完全錯誤的角度處理了這種情況(在多頁上呈現的表單)?
Hey Ondrej你有沒有設法找到一個乾淨的方式來實現這個(或另一個頁面上的形式重用的其他問題)?我只是好奇,因爲我面臨完全相同的問題。似乎這可能是一個常見問題,如果你有一個網站的搜索表單或其他一些。我唯一能想到的方式是直接發佈到someFormAction路由,然後使用重定向回到原始URL並將表單變量存儲在會話中......雖然看起來很髒。 – Kasheen
它看起來像這樣打算工作。我正在使用與您所描述的相同的技巧。我做了一些進一步的研究,甚至無法從嵌入式操作中訪問父範圍。這會有很大的幫助。 –
好的,謝謝。我曾認爲使用會話可能是一條路 - 如果您查看內置的登錄表單身份驗證,它會執行相同的操作(將會話中的用戶名和密碼字段存儲起來),然後重定向到某個URL或者通過配置或通過隱藏的領域(我認爲)。如果嵌入式操作可以通過發送到父級操作路由來重定向,那麼它會更加清潔,儘管如此,它仍然無法工作。謝謝您的幫助。 :) – Kasheen