2015-10-18 112 views
0

我正在開發一個使用Symfony2的小系統,並且我已經達到了需要複製相同的editAction的情況,但只更改它呈現的view從Symfony2中的相同動作呈現不同的視圖

我使用此操作來編輯頁面中列出的所有已註冊預算的基本信息。我有一個特殊的頁面列出了所有不活動的預算,我想要一個不同的編輯頁面來更改一些狀態並添加日期。

如何根據網址使用相同的editAction來呈現不同的視圖?列出所有預算的頁面是/budgets,而不活動的頁面是/budgets/inactive

回答

0

使用類似:

/** 
* @Route("/budgets/{active}", defaults={"active" = "active"}) 
*/ 
public function editAction($active) 
{ 
    // ... 
} 

然後,當你去/budgets $活躍的將是「積極的」,當你去/budgets/inactive $主動將「無效」。然後,您可以使用這個變量來決定顯示

更多的信息在這裏的模板: http://symfony.com/doc/current/book/routing.html#required-and-optional-placeholders

+0

它的工作,但是當我按下按鈕的頁面被重定向到常規編輯頁面,並不保存任何東西。 – mfgabriel92

+0

我沒有給你一個完整的解決方案,只是一個指針。顯然還有很多其他的事情需要考慮,正如Frankbeen指出的那樣。在重定向到同一頁面的情況下,顯然你需要在從每個視圖重定向時輸入正確的url,這在我發給你的Symfony書籍頁面中有解釋。 –

0

卡洛斯,感謝尼斯的答案,但編輯操作還需要驗證,之後有錯誤或同一頁面某種有效形式的行爲。所以我會說,即使是一個簡單的形式也有點複雜。當你做出「兩個觀點」的動作時,它會變得更復雜2 * 2 = 4倍。除此之外$活動變量可以有任何值,不僅是「活動」,或者你想「不活躍」。這可能是「笑話」,「愚蠢」和更多的可能性。我的建議是添加第二個動作,並使用私有函數來適合這兩種形式的功能,或使用處理表單的custum類(或服務)。

+0

這不應該是一個答案,而應該是一個評論到我的答案。我同意你說的很多事情。我不想提供完整的解決方案,只是一個讓用戶思考正確方向的指針 –

相關問題