Zend Framework 2 - Форма аннотации, проверка RegEx и пользовательские сообщения об ошибках

Как указано здесь Я работаю с GeoPositionFields . Поскольку это не поддерживается Zend, я пошел со стандартным валидатором RegEx .

Он отлично работает, но мне все еще нужно собственное сообщение об ошибке - любые идеи, как это сделать?

Один в моем примере просто ничего не делает ...

/**
 * @ORM\Column(type="string")
 * @Form\Filter({"name":"StringTrim"})
 * @Form\Validator({"name":"Regex", "options":{"pattern":"/(-?\d{1,3}\D\d+)[^\d-]+(-?\d{1,3}\D\d+)/"}})
 * @Form\ErrorMessage("My custom message")
 * @Form\Attributes({"type":"text"})
 * @Form\Options({"label":"GeoPos"})
 *
 */
protected $geopoint;

Даже этот человек просто игнорируется:

@Form\Messages({"regexNotMatch": "My custom message"})
2
nl ja de

2 ответы

Вам придется перезаписать сообщения по умолчанию с помощью клавиши messages из параметров.

Попробуйте это (я думаю, вам придется обрезать это в одну строку, хотя для аннотаций работать;) Это зависит от вас, хе-хе.

@Form\Validator({
    "name":"regex", 
    "options":{
        "pattern":"/(-?\d{1,3}\D\d+)[^\d-]+(-?\d{1,3}\D\d+)/",
        "messages":{
            "regexInvalid":"Regex is invalid, Booo!",
            "regexNotMatch": "Input doesn't match, bleeeeh!",
            "regexErrorous": "Internal error, i'm like wtf!"
        }
    }
})

У каждого валидатора есть свои собственные сообщения. Лучше всего рекомендуется увидеть исходный код, чтобы узнать, какие сообщения ErrorMessages присутствуют в каждом элементе. Чтобы привести пример, выполните это (нажмите) , чтобы узнать, как узнать о клавишах сообщений.

При использовании синтаксиса типа массива для создания форм вне аннотаций может быть немного безопаснее перейти к подходу statis для таких ключей, как

'messages' => array(
    \Zend\Validator\Regex::INVALID => "Regex is invalid, Booo!",
    //etc...
)

Поскольку струны - по крайней мере в теории - всегда могут измениться, константы не будут.

7
добавлено
hm ... до сих пор нет реакции: @Form \ Validator ({"name": "Regex", "options": {"pattern": "/ (-? \ d {1,3} \ D \ d + ) [^ \ d -] + (-? \ d {1,3} \ D \ d & zwnj; +)/"}," messagesTemplates ": {" regexInvalid ":" Regex is invalid, Booo! "," regexNotMatch ":" Ввод не соответствует, bleeeeh! "," RegexErrorous ":" Внутренняя ошибка, я похож на wtf! "}})
добавлено автор Ron, источник
yep, по умолчанию. и нет, просто отлично ...
добавлено автор Ron, источник
ok, теперь он работает, неуместен } :) Еще раз спасибо!
добавлено автор Ron, источник
Получаете ли вы сообщения об ошибках по умолчанию, если вы покидаете шаблоны? Какие-то ошибки вообще?
добавлено автор Sam, источник
Мой плохой, это сообщения not messagesTemplates - отредактирован ответ, извините.
добавлено автор Sam, источник
/^(\-?\d+(?:\.\d+)?),?\s*(\-?\d+(?:\.\d+)?)$/

Это регулярное выражение проверяет и фиксирует ввод ГЭП:

  • In format Latitude, Longitude
  • In format Latitude Longitude
  • Coordinates copied directly from GoogleMaps
1
добавлено
спасибо за ответ, но выражение здесь не вопрос;)
добавлено автор Ron, источник
@Ron, пусть это будет хорошим дополнением к этому вопросу. Kinda Новогодний подарок :)
добавлено автор Paul T. Rawkeen, источник
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp