RockLobsterInc\Swv\Rules

DayofweekRule::validate │ public │ CF7 1.0

Validates the form data according to the logic defined by this rule.

Метод класса: DayofweekRule{}

Хуков нет.

Возвращает

null. Ничего (null).

Использование

$DayofweekRule = new DayofweekRule();
$DayofweekRule->validate( $form_data, $context );
$form_data(FormDataTree) (обязательный)
Form data.
$context(массив)
Optional context.
По умолчанию: []

Код DayofweekRule::validate() CF7 6.2.4.1

public function validate(FormDataTree $form_data, array $context = [])
{
    $values = $form_data->getAll($this->field);
    $values = array_flatten($values);

    if (empty($values)) {
        return true;
    }

    $acceptable_values = array_map("intval", $this->accept);

    foreach ($values as $value) {
        if (DateRule::isDate($value)) {
            $datetime = date_create_immutable($value);
            $day_of_week = (int) $datetime->format("N");

            if (!in_array($day_of_week, $acceptable_values, true)) {
                throw new Invalidity($this, ["cause" => $value]);
            }
        }
    }

    return true;
}