Ich verwende den Callback -Validator in Symfony 2.0.4, um eine Sammlung eingebetteter Formulare zu validieren. Ich versuche zu sehen, ob eine der Felder der Formulare in einem der Formulare dupliziert wird und wenn ja, um einen Fehler auf diesem Feld hinzuzufügen.
Hier ist der Code: < /p>
/**
* @Assert\Callback(methods={"isPriceUnique"})
*/
class Pricing {
protected $defaultPrice;
protected $prices;
public function isPriceUnique(ExecutionContext $context){
//Get the path to the field that represents the price collection
$propertyPath = $context->getPropertyPath().'.defaultPrice';
$addedPrices = $this->getPrices();
\array_unshift($addedPrices, $this->getDefaultPrice());
for($i=0; $igetCountry();
//Check for duplicate pricing options(whose country has been selected already)
if($isetPropertyPath($propertyPath.'.'.$j.'.country');
$context->addViolation('product.prices.unique', array(), null);
break;
}
}
}
}
}
< /code>
Das Feld $ Preise ist eine Reihe von Preisunternehmen, die jeweils über die Landbesitz sind. Das Land wird auch dem Formulartyp hinzugefügt. '.field'.
Könnte mir jemand sagen, welcher Syntax für $ propertyPath ist, der es mir ermöglichen würde, ein Feld auf einer niedrigeren Ebene in der Hierarchie festzulegen? < /p>
Update:
Es scheint, dass die Validierung ordnungsgemäß durchgeführt wird, und nach dem Studium des PropertyPath -Klassenkonstruktors bin ich sicher, dass der Weg, den ich habe verwendet ist korrekt. Das Problem ist, dass die angegebene Nachricht wie erwartet nicht im Bereich des Landes angezeigt wird.
Symfony2 Callback -Validierungsfehler auf der Eigenschaft des Feldes festgelegt ⇐ Php
-
- Similar Topics
- Replies
- Views
- Last post