sfWidgetFormDoctrineChoice: как перебрать данные из вложенных моделей? (Symfony 1.4) - PullRequest
0 голосов
/ 11 октября 2011

У меня есть ConnectForm с вложенными полями из другой модели: числа. Я хочу сделать этот ConnectForm со всеми номерами, и все работает хорошо, когда я просто

    <?php echo $form['numbers_list'] ?>

Но мне нужно напечатать другие поля Numberss, такие как: цена, код и т. Д. Как распечатать это?

Лучшим способом для меня было бы что-то вроде этого:

    <?php foreach($form['numbers_list'] as $num): ?>
        <span> echo $num->renderInput()</span>
        <span>echo $num->getPrice()</span>
        <span>echo $num->getCode()</span>
    <?php endforeach; ?>

1 Ответ

0 голосов
/ 11 октября 2011

Возможно, вам лучше создать собственный класс sfWidgetFormSchemaFormatter, а затем использовать его для вывода вашей формы - вы можете вывести целую форму после создания нового класса sfWidgetFormSchemaFormatter, выполнив <?php echo $form ?>, например:

class sfWidgetFormSchemaFormatterCustom extends sfWidgetFormSchemaFormatter
{
  protected
    $rowFormat       = "<span class=\"my-label-class\">%label%</span>\n  <span>%error%%field%%help%%hidden_fields%</span>`n",
    $errorRowFormat  = "<span class=\"my-error-class\" colspan=\"2\">\n%errors%</span>\n",
    $helpFormat      = '<br />%help%',
    $decoratorFormat = "<div>\n  %content%</div>";
}

Затем в методе configure вашей формы добавьте следующее, что говорит форме использовать ваш собственный декоратор:

$this->getWidgetSchema()->setFormFormatterName('custom');

...