Zend-framework-Доступ к другим полям формы в фильтре zf2

У меня есть проблема в Zend-Framework2, где мне нужно прочитать / записать значение другого поля в фильтре одного поля.

У меня есть форма, которая получает адресные данные от пользователя: улица, номер, номерДобавление, почтовый индекс, город.

Мне нужно расстаться число а также NumberAddition, потому что у меня есть некоторые строгие ограничения при дальнейшей обработке этих данных. Номер должен быть числовым (int) и NumberAddition может быть строкой.

Пример пользовательского ввода:
номер: 47а
NumberAddition: [пусто]

Должен быть отфильтрован до:
номер: 47
NumberAddition:

Я хотел бы реализовать это в качестве фильтра: если NumberAddition пусто и число не является int, то разделить число на число и NumberAddition.

Есть ли способ сделать это с помощью фильтров или есть лучший подход?

0

Решение

Это не правильное решение

В обоих FilterInterface и ValidatorInterface мы не можем видеть ни одного $context передается переменная, поэтому приведенное ниже решение не гарантирует прямой совместимости (в основном кто-то может удалить $context и ваш код больше не будет работать, не нужно ждать основной версии, чтобы сделать это, поскольку она уже не является частью интерфейсов).

В вашем коде вы все еще можете использовать $context как теперь вы знаете, что делаете; p

Итак, в основном:

class MyFilter implements \Zend\Filter\FilterInterface
{
public function filter($value, array $context = null)
{
if ($array && isset($context['fieldName'])) {
// do whatever
}
return $valueFiltered;
}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]