Задать вопрос

Yii2 rules (валидация данных), почему возникают ошибки с валидацией?

Итак есть модуль статические страницы, содержащий следующие поля в таблице pages:
['title', 'description', 'keywords', 'name', 'url', 'text', 'status']

Мои правила валидации:
public function rules()
	{
		return [
		    // Обязательные поля
		    [['name', 'text', 'url', 'status'], 'required'],

			// Заголовок, описание, ключевые слова и название страницы
			['title,description,keywords,name', 'filter', 'filter' => 'trim'],
			['title,description,keywords,name', 'string', 'max' => 100],

            // статус 
            ['status', 'in', 'range' => array_keys(self::getStatus())],

	    // Текст [[text]]
            
            // Url адрес
			['url', 'unique', 'attributes'=>'url'],
			['url', 'string', 'max'=>16],
			['url', 'match', 'pattern'=>'/[a-zA-Z0-9-_.]+$/'],
		];
	}


Тут возникает 2 проблемы:

1) в поле url я могу дописать пробел. Тоесть регулярка /[a-zA-Z0-9-_.]+$/ как-бы срабатывает, но пробел она пропускает.

2) какая-то проблема с полем text, ситуация такая, что если я заполняю данные и нажимаю кнопку сохранить, вылазит ошибка "Заполните обязательное поле text" и при этом со второго клика данные сохраняются.

Подскажите, пожалуйста, как решить эти проблемы?
  • Вопрос задан
  • 10150 просмотров
Подписаться 4 Оценить Комментировать
Решения вопроса 1
metamorph
@metamorph
1. Пропишите метасимвол начала строки, иначе регулярка будет срабатывать на символы в конце.
И точку экранируйте :)
2. включите validateOnType
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы