setValidationScope – validovat vše mimo některých

pista5
Člen | 30
+
0
-

Ahoj,
mam velky formular, ktery ma 2 odesilaci tlacitka… pri stisknuti prvniho se validuji pouze 3 polozky, jejich vycet dam do setValidationScope([x, y, z]).
Pri odeslani druhym potrebuji validovat vsechny ostatni polozky, mimo tech 3… vycet v setValidationScope by byl obrovsky…

Neni nejaky trik, jak validovat vsechny polozky mimo nekterych? Tj. negativni vycet polozek.

Editoval pista5 (19. 11. 21:02)

Martk
Člen | 621
+
0
-

Budeš si muset vytvořit vlastní funkci, která to obrátí, tzn. něco jako

foreach ($form->getControls() as $control) {
	if (!in_array($control, $skip, true)) {
		$validationScope[] = $control;
	}
}
pista5
Člen | 30
+
0
-

Diky za namet, ale nejsem z toho uplne chytry :)))

Jak tuto funkci napojim na formular/submit tlacitko?

Martk
Člen | 621
+
+2
-
->setValidationScope(validationScopeReverse([$x, $y, $z]));

function validationScopeReverse(array $noValidate): array
{
	$scope = [];
	foreach ($form->getControls() as $control) {
		if (!in_array($control, $noValidate, true)) {
			$scope[] = $control;
		}
	}

	return $scope;
}
pista5
Člen | 30
+
0
-

Diky!