2013-04-26 2 views
1

Объекты доктрины имеют метаданные проверки, заданные на своих полях-членах независимо от форм. Система форм Symfony2 каким-то образом использует валидаторы, предоставляемые сущностью.Symfony2 - как мне выполнить проверку на моих объектах без доктрины?

Как это работает? Что связывает все это вместе?

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

  • Определение валидаторов на объекте без доктрины
  • Определения валидаторы без аннотаций
  • Разрешить модель для проверки себя без формы
  • Allow образует использовать валидаторы по объекту, не относящемуся к доктрине
+0

Начните с работы здесь: http://symfony.com/doc/current/book/validation.html. Нет ничего особенного в объектах сущности doctrine. Это просто старые старые php-объекты, поэтому все должно отлично работать на ваших объектах. Служба валидатора позволит проверить ваши объекты за пределами формы. Вы также можете вникнуть в документацию компонента проверки. – Cerad

+0

И чтобы ответить на ваш первый вопрос: S2 использует файл Resources/config/validation.yml, чтобы связать вещи по умолчанию. – Cerad

ответ

1

Не уверены, если он обрабатывает ситуацию (как ни один код не-доктрина сущность не предусмотрен), но вы можете использовать ограничение Symfony проверки на значения и массивы значений:

Validation

В качестве примера подтверждение пары значений даты в массиве:

private function isInvalid($data) 
{ 
    $response = array(); 
    $constraint = new Collection(array(
       'from'=>new Date(), 
       'to'=>new Date(), 
      )); 

    $validationList = $this->get('validator')->validateValue($data, $constraint); 

    if(count($validationList)>0) { 
     foreach($validationList as $err) { 
      array_push($data,array(
       'field'=>$err->getPropertyPath(), 
       'message'=>$err->getMessage(), 
      )); 
     } 
     return $response; 
    } 
    return false; 
} 
Смежные вопросы