1. First Method:
Add following line in the template:
foreach($form->getWidgetSchema()->getPositions() as $widgetName)
{
echo $widgetName." == ".$form[$widgetName]->renderError();
echo "<br />";
}
Using above script, you will find something like this:
first_name == Please enter First Name.
last_name == Please enter Last Name.
address1 == Please enter Address 1.
2. Second Method:
public function getAllErrors()
{
$err = array();
foreach ($this as $form_field){
if ($form_field->hasError()){
$err_obj = $form_field->getError();
if ($$err_obj instanceof sfValidatorErrorSchema){
foreach ($err_obj->getErrors() as $err){
$err[$form_field->getName()] = $err->getMessage();
}
}else{
$err[$form_field->getName()] = $err_obj->getMessage();
}
}
}
// global err
foreach ($this->getGlobalErrors() as $validator_err){
$err[] = $validator_err->getMessage();
}
return $err;
}
put above function in your form class. and call this function in your action.class.php as given below:
$this->form->getAllErrors();
Using above method, you will get something like this:
Array ( [first_name] => Please enter First Name. [last_name] => Please enter Last Name. [address1] => Please enter Address 1. [town] => Please enter Town. [country] => Please select Country [email] => Please enter E-Mail address [phone] => Please enter Phone Number [address_proof] => Please upload credit card statement. [user_id_proof] => Please upload identity proof. [card_Num] => Please enter Card Number [card_holder] => Please enter Card Holder name. [transaction_type] => Please select transaction type. )
Cheers!
not include the value in embedded form
ReplyDeleteYes, I need error from embedded forms also.
ReplyDelete