@@ -479,50 +479,52 @@ public function control(string $fieldName, array $options = []): string
479479 $ options ['templates ' ] = [];
480480 }
481481
482- switch ($ options ['type ' ]) {
483- case 'checkbox ' :
484- case 'radio ' :
485- case 'select ' :
486- case 'range ' :
487- $ function = '_ ' . $ options ['type ' ] . 'Options ' ;
488- $ options = $ this ->{$ function }($ fieldName , $ options );
489- break ;
490-
491- default :
492- $ options = $ this ->_labelOptions ($ fieldName , $ options );
493- break ;
494- }
482+ try {
483+ switch ($ options ['type ' ]) {
484+ case 'checkbox ' :
485+ case 'radio ' :
486+ case 'select ' :
487+ case 'range ' :
488+ $ function = '_ ' . $ options ['type ' ] . 'Options ' ;
489+ $ options = $ this ->{$ function }($ fieldName , $ options );
490+ break ;
491+
492+ default :
493+ $ options = $ this ->_labelOptions ($ fieldName , $ options );
494+ break ;
495+ }
495496
496- $ options = $ this ->_spacingOptions ($ fieldName , $ options );
497- $ options = $ this ->_containerOptions ($ fieldName , $ options );
498- $ options = $ this ->_feedbackStyleOptions ($ fieldName , $ options );
499- $ options = $ this ->_ariaOptions ($ fieldName , $ options );
500- $ options = $ this ->_placeholderOptions ($ fieldName , $ options );
501- $ options = $ this ->_helpOptions ($ fieldName , $ options );
502- $ options = $ this ->_tooltipOptions ($ fieldName , $ options );
497+ $ options = $ this ->_spacingOptions ($ fieldName , $ options );
498+ $ options = $ this ->_containerOptions ($ fieldName , $ options );
499+ $ options = $ this ->_feedbackStyleOptions ($ fieldName , $ options );
500+ $ options = $ this ->_ariaOptions ($ fieldName , $ options );
501+ $ options = $ this ->_placeholderOptions ($ fieldName , $ options );
502+ $ options = $ this ->_helpOptions ($ fieldName , $ options );
503+ $ options = $ this ->_tooltipOptions ($ fieldName , $ options );
503504
504- if (
505- isset ($ options ['append ' ]) ||
506- isset ($ options ['prepend ' ])
507- ) {
508- $ options ['injectErrorClass ' ] = $ this ->getConfig ('templates.errorClass ' );
509- }
510-
511- unset(
512- $ options ['formGroupPosition ' ],
513- $ options ['feedbackStyle ' ],
514- $ options ['spacing ' ],
515- $ options ['inline ' ],
516- $ options ['nestedInput ' ],
517- $ options ['switch ' ],
518- );
505+ if (
506+ isset ($ options ['append ' ]) ||
507+ isset ($ options ['prepend ' ])
508+ ) {
509+ $ options ['injectErrorClass ' ] = $ this ->getConfig ('templates.errorClass ' );
510+ }
519511
520- $ result = parent ::control ($ fieldName , $ options );
512+ unset(
513+ $ options ['formGroupPosition ' ],
514+ $ options ['feedbackStyle ' ],
515+ $ options ['spacing ' ],
516+ $ options ['inline ' ],
517+ $ options ['nestedInput ' ],
518+ $ options ['switch ' ],
519+ );
521520
522- $ result = $ this -> _postProcessElement ( $ result , $ fieldName , $ options );
521+ $ result = parent :: control ( $ fieldName , $ options );
523522
524- if ($ newTemplates ) {
525- $ this ->templater ()->pop ();
523+ $ result = $ this ->_postProcessElement ($ result , $ fieldName , $ options );
524+ } finally {
525+ if ($ newTemplates ) {
526+ $ this ->templater ()->pop ();
527+ }
526528 }
527529
528530 return $ result ;
0 commit comments