我這裏所描述的完全一樣的問題:Optional embed form in Symfony 2:Symfony的3:嵌入式形式全有或全無的驗證錯誤顯示
我對實體人具有爲實體電話嵌入表單的表單。用戶可以將電話的所有字段留空並且該表格將是有效的。但是如果單個字段的電話已填寫,則全部電話-字段必須有效。
在我的第一個方法,我簡單地@Assert\Valid()
註釋的的電話業者無@Assert\NotNull()
。只有在輸入新的人時才能正常工作。當編輯現有的人和電話財產已經填寫,刪除所有電話字段(這應該是有效的)不會導致有效的提交。
的this solution有一個驗證回調函數驗證工作有一些修改爲symfony1.2 3:
/**
*
* @Assert\Callback()
*/
public function validatePhone(ExecutionContextInterface $context)
{
if (/* Fields are not empty */)
{
$context->getValidator()->inContext($context)->validate($this->phone);
}
}
但提交表單後,爲手機領域驗證錯誤的網頁上沒有顯示。我只能在調試工具欄中看到它們。
也許,這個解決方案需要以某種方式修改,以便在表單提交後顯示錯誤?
但甚至我的第一種方法可能會奏效,如果它是某種可以設置該屬性電話現有人對象爲空的,如果電話的所有表單域已被清除?