CakePHP 3 walidacja pod konkretną akcję

W niniejszym artykule pokażę jak zrobić w CakePHP 3 walidację pod konkretną akcję. Załóżmy, że mamy w modelu podstawową walidację i chcemy aby była ona uruchamiana w większości przypadków. Chcemy jednak w jednej z akcji kontrolera zmienić nieco naszą walidację.

W tym przypadku należy napisać drugą walidację pod inną nazwą i przekazać ją jako parametr do metody patchEntity. Przykładowo:
$this->Users->patchEntity($user, $data, [
	'validate' => 'Custom'
]);
Standardowa walidacja jest określana w pliku Table w funkcji validationDefault
public function validationDefault(Validator $validator)
{

}
W celu użycia niestandardowej walidacji należy dodać kolejną funkcję walidacji np. validationCustom.
 public function validationCustom(Validator $validator)
{

}