<?php
class Somecontroller extends A_Controller_Action {
function index($locator) {
$usersmodel = $this->_load()->model('Users');
$view = $this->_load()->view('Form');
// Instantiate a new form model/controller
$form = new A_Model_Form();
// Hand the Form the fields and rules from the model
// $form->addRule($usersmodel->getRules());
$form->addField($usersmodel->getFields());
// Now add an additional field, the second password field. Which must match the first password field.
// The $form get the Rules for the first password field from $usersmodel
$form->addField($passwordfield = new A_Model_Form_Field('password2'));
// now we add an additional rule, specific for the form we are dealing with.
$form->addRule(new A_Rule_Match('password', 'password2', 'Password 2 must match Password 1'));
//$form->run($locator);
//dump($form);
// ask the form if it is valid. The form checks internally if the model fields are valid?
if($form->isValid($this->request)){
// save
$usersmodel->save($form->getSaveValues());
// redirect to user detail page or whatever
} else {
// show errors if submitted
$view->setErrorMsg($form->getErrorMsg());
}
$view->setValues($form->getValues());
$this->response->setRenderer($view);
}
}
|