Inside the controller :
public function addAction() { |
|
$form = new TestForm(); |
|
$form->get('submit')->setAttribute('value', 'Add'); |
|
$request = $this->getRequest(); |
|
if ($request->isPost()) { |
|
$test = new Test(); |
|
$form->setInputFilter($test->getInputFilter()); |
|
$form->setData($request->getPost()); |
|
if ($form->isValid()) { |
|
$test->exchangeArray($form->getData()); |
|
|
|
if($this->getTestTable()->validateRecord($test, 'field1', 'test')){ |
|
$this->getTestTable()->saveTest($test); |
|
$this->flashMessenger()->addMessage('Record added in db'); |
|
// Redirect to list of tests
|
|
return $this->redirect()->toRoute('test'); |
|
}
|
|
else{ |
|
$this->flashMessenger()->addMessage('Record Exist in DB'); |
|
return $this->redirect()->toRoute('test', array('action' => 'add')); |
|
}
|
|
}
|
|
}
|
|
return array('form' => $form,'flashMessages' => $this->flashMessenger()->getMessages()); |
|
}
|
Inside the model
public function validateRecord($data,$field,$table){ |
|
$select = new ZendDbSqlSelect(); |
|
$select->from($table) |
|
->where->equalTo($field, $data->$field); |
|
$validator = new ZendValidatorDbRecordExists($select); |
|
$validator->setAdapter($this->adapter); |
|
if ($validator->isValid($data->$field)) { |
|
return false; |
|
}
|
|
else { |
|
return true; |
|
}
|
|
}
|