Hallo,
ich erstelle gerade ein Formular, in dem sowohl Felder enthalten sind, die zum Domänenobjekt gehören, als auch welche, die nicht dazu gehören.
Für letztere habe ich einen zusätzlichen Validator geschrieben, der läuft auch prima durch und schickt mich brav bei Fehlern zum aufrufenden Formular zurück. An dieser Stelle würde ich gerne die Fehler ausgeben, da diese aber nicht zum Domänenobjekt gehören, habe ich grade keine Ahnung, wie ich darauf zugreifen kann bzw. wie diese überhaupt korrekt vom Validator übergeben werden sollen.
So sieht mein Code aus:
New.html:
[code]<f:form action="create" enctype="multipart/form-data" name="newAnzeige" object="{newAnzeige}">
...
<f:form.upload name="bild[0]" class="form-control-file" />
<f:form.upload name="bild[1]" class="form-control-file" />
...
</f:form>
[/code]
Im Controller:
[code]...
* @param \array $bild
* @validate $bild \xxx\xxx\Validation\Validator\BilderValidator
* @return void
*/
public function createAction(\xxx\xxx\Domain\Model\Anzeige $newAnzeige, $bild)
...
[/code]
der Validator:
[code]protected function isValid($value) {
...
$this->addError('falsches Bildformat', 1534923561);
//bzw.
$this->result->forProperty('bilder')->addError('falsches Format', 1534923560);
...
}
[/code]
Geht beides nicht, vermutlich ist hier die Übergabe falsch ... Wie macht man das denn korrekt?
Fehlerausgabe im Template:
[code]<f:form.validationResults for="newAnzeige">
<f:if condition="{validationResults.flattenedErrors}">
<ul>
<f:for each="{validationResults.flattenedErrors}" key="propertyPath" as="errors">
<f:for each="{errors}" as="error">
<li>{error}</li>
</f:for>
</f:for>
</ul>
</f:if>
</f:form.validationResults>
[/code]
Wird aber natürlich nur für das Domänenobjekt aufgerufen.
Steh total auf dem Schlauch ...
Danke im Voraus für Tipps und Hinweise!