在Symfony2中,我將如何使用樹枝模板來顯示每個字段旁邊的AND表單頂部的表單錯誤?Symfony2在字段旁邊和表格頂部顯示錶單錯誤
目前我只設法得到一個或另一個,通過設置error_bubbling
爲true或在每一個領域虛假...
感謝
在Symfony2中,我將如何使用樹枝模板來顯示每個字段旁邊的AND表單頂部的表單錯誤?Symfony2在字段旁邊和表格頂部顯示錶單錯誤
目前我只設法得到一個或另一個,通過設置error_bubbling
爲true或在每一個領域虛假...
感謝
一個解決方案,我可以建議你是做第二,明確的,驗證你的對象並向你的模板發送錯誤。這樣,第一個隱含的驗證在表單對象內完成,並且錯誤被綁定到字段(不使用錯誤冒泡)。第二個驗證會給你一個錯誤的迭代器,你可以將這個迭代器傳遞給你的模板以顯示在窗體的頂部。然後,您將在每個字段旁邊以及表單頂部留下錯誤。
我建議你根據StackOverflow上的this問題。檢查this特別的答案。
下面的代碼爲控制器的草圖(我沒有測試任何東西):
// Code in a controller
public acmeFormAction(...) {
// Form and object code
// Get a ConstraintViolationList
$errors = $this->get('validator')->validate($user);
return $this->render('AcmeTaskBundle:Default:new.html.twig', array(
'form' => $form->createView(),
'errors' => errors,
));
}
和代碼模板:
{# Code in a twig template #}
<ul id="error-list">
{% for error in errors %}
<li> error.message </li>
{% endfor %}
</ul>
{# Display your form as usual #}
如果沒記錯的話,還有一個辦法從窗體中檢索所有錯誤,並仍然在每個字段上設置錯誤。從我的記憶來看,它是表格視圖中的一個特殊屬性,如form.errors
。但我不記得或找到關於此的任何信息。所以,現在,這是我能找到的最好的方法。
你應該做的是使用形式誤差,這可已經考慮到這裏乏像描述:
https://stackoverflow.com/a/13047952/1041895
請看看註釋:
使用vars.errors在新版本上或只是轉儲表單字段以查看屬性。 因爲這部分取決於Symfony版本。
如果我們從全局的角度來看,明確的驗證聽起來不太好。假設我們的應用程序中有50個窗體。是的。 看看我的答案。 –