public function getFormErrorMessagesWithLabels(Form $form, FormHelper $formHelper)
 {
     $errors = array();
     foreach ($form->getErrors() as $key => $error) {
         if ($form->isRoot()) {
             $errors['#'][] = $error->getMessage();
         } else {
             $errors[] = $error->getMessage();
         }
     }
     foreach ($form->all() as $child) {
         if (!$child->isValid()) {
             $label = $child->getConfig()->getOption('label');
             if (!$label) {
                 $label = $formHelper->humanize($child->getName());
             }
             $errors[$label] = $this->getFormErrorMessagesWithLabels($child, $formHelper);
         }
     }
     return $errors;
 }
Example #2
0
    /**
     * @param PhpEngine $view
     * @param $label
     * @param $required
     * @param $compound
     * @param $id
     * @param $name
     * @param $translation_domain
     * @param $label_attr
     * @param FormHelper $formHelper
     * @param TranslatorHelper $translatorHelper
     * @param null $label_format
     */
    public function condition_label($view, $label, $required, $compound, $id, $name, $translation_domain, $label_attr, $formHelper, $translatorHelper, $label_format = null)
    {
        /** @var FormView $form */
        ?>
        <?php 
        if (false !== $label) {
            ?>
        <?php 
            if ($required) {
                $label_attr['class'] = trim((isset($label_attr['class']) ? $label_attr['class'] : '') . ' required');
            }
            ?>
        <?php 
            if (!$compound) {
                $label_attr['for'] = $id;
            }
            ?>
        <?php 
            if (!$label) {
                $label = !is_null($label_format) ? strtr($label_format, array('%name%' => $name, '%id%' => $id)) : $formHelper->humanize($name);
            }
            ?>
            <label <?php 
            foreach ($label_attr as $k => $v) {
                printf('%s="%s" ', $view->escape($k), $view->escape($v));
            }
            ?>
><?php 
            echo $view->escape($translatorHelper->trans($label, array(), $translation_domain));
            ?>
: </label>
        <?php 
        }
        ?>
        <?php 
    }