我正在嘗試爲我的表單實施x-editable。爲此,需要找到一種方法來更新單一財產基礎上的實體。這給我的最大麻煩是如何驗證單個數據的方式。據我的理解,setValidationGroup()
似乎沒有工作(或者我這樣做是完全錯誤的)。下面是我的嘗試:單個字段的AJAX表單更新
if ($request->isPost()) {
$form->setData($request->getPost());
if($request->isXmlHttpRequest()) {
$filters = $form->getInputFilter();
$filters->setValidationGroup(
$this->params()->fromPost('name')
);
$form->setInputFilter($filters);
}
if ($form->isValid()) {
$objectManager->flush();
if ($request->isXmlHttpRequest()) {
$response = $this->getResponse();
$response->setStatusCode(Response::STATUS_CODE_200);
return $response;
}
} else {
$errors = $form->getMessages();
\Zend\Debug\Debug::dump($errors);
die("notvalid");
}
}
爲isXmlHttpReqiest
的檢查服務的#1目的來縮小審定組只是一個元素和#2發出與x軸工作,具體的反應jQuery的可編輯插件。
當前錯誤:所有的FormFields都經過驗證。我收到一個錯誤消息,其中有兩個必填字段,它們的isEmpty
-Validator被調用。
其實事實並非如此。你有兩種定義組的方法,一種是數組,另一種是數字或字符串參數'setValidationGroupd('eOne','eTwo','eN')' – Sam
是的,我的主旨是更多地使用形式方法,而不是到輸入過濾器之一,而不是實際的參數格式,但我從答案中看到它沒有任何區別。 – Crisp
啊,是的,你是真的,沒有真正注意到這一點。最後一個例子也使用了你剛纔提到的形式! – Sam