Zend Validation Db_NoRecordExists y excluye la opción
Estoy tratando de usar la opción "excluir" para un validador Db_NoRecordExists, porque cuando estoy "editando" el elemento siempre me devuelve un error "duplicado", como de costumbre.
Lo que pretendo es decirle al formulario que mantenga el valor pasado al formulario mismo desde el controlador ...
Este es el controlador:
public function editAction()
{
$id = $this->getRequest()->getParam('id');
$pagesMapper = new Application_Model_PagesMapper();
$form = new Application_Form_PageEdit();
$form->populate($pagesMapper->fetchId($id, true));
if ($this->getRequest()->isPost()) {
if ($form->isValid($this->getRequest()->getPost())) {
//... cut ...
}
}
$this->view->form = $form;
}
Este es el formulario:
class Application_Form_PageEdit extends Zend_Form
{
public function init()
{
$commonFilters = array('StringTrim');
$commonValidators = array('NotEmpty');
$this->setMethod('post')->setAction('/admin-page/edit');
$id = new Zend_Form_Element_Hidden('id');
$pid = new Zend_Form_Element_Hidden('pid');
$keyname = new Zend_Form_Element_Text('keyname');
$keyname->setLabel('Keyname')
->setRequired(true)
->addFilters($commonFilters)
->addFilter('StringToLower')
->addFilter('Word_SeparatorToDash')
->addValidator('Db_NoRecordExists', false, array(
'table' => 'pages',
'field' => 'keyname',
'exclude' => array(
'field' => 'id',
'value' => $this->getValue('id)
)
)
);
//... cortar ..
¿Algunos consejos