Во-первых, я бы не стал учить форму вашим частичным именам, потому что она не должна быть привязана к вашему слою вида.Вместо этого найдите семантическое имя для настройки, которую вы пытаетесь достичь (возможно, «withExtraFields» или около того, я просто догадываюсь).
При этом, как минимум, есть 3 способа сделать то, что вы 'повторная попытка:
Вы можете либо передать ее в виде опции в форму:
$form = new JobForm($job, array('withExtraFields' => true));
, а затем воздействовать на нее внутри формы:
if($this->getOption('withExtraFields') //do something
Или выможет вызвать сбой в контроллере (вероятно, не самое лучшее место):
//actions.class.php
if($partialName == 'partialA') unset($form['field_a']);
Или, как предложено выше, вы можете создать 2 разные формы (лучше всего, если применяются несколько полей или другие правила проверки):
//actions.class.php
if($partialName == 'partialA') $form = SpecialJobForm();
else $form = NotSoSpecialJobForm();
Надеюсь, это поможет.Daniel