Frage Zu Validator-Extension

Hi zusammen,

gegeben ist die Klasse "Record", die CActiveRecord in welcher eine

Validierung mittels einer rules()-Methode definiert sind. Beispielhaft:

public function rules(){

return array(

array('type', 'length', 'max'=>10),


array('content', 'ext.validators.ResourceRecordValidator'),

);

}

Für die Überprüfung von "content" habe ich entsprechend eine eigene

Klasse ResourceRecordValidator (extends CValidator) definiert, die

Validierung funktioniert auch soweit.

Ich benötige jedoch für die abhängige Überprüfung auch den Inhalt von

"type" - wie übergebe ich "content" zusammen mit "type" an meinen

Validator ext.validators.ResourceRecordValidator.

Hintergrund: Abhängig vom type müssen unterschiedliche Validierungen

des "content" erfolgen.

Besten Dank,

Wayne

In CValidator überschreibst du die Methode


protected function validateAttribute($object,$attribute)

Die Variable $object verweist dabei auf dein Model. In dem Fall kannst du also mittlels $object->type auf den gewünschten Wert zugreifen.

z.B.:

Record.php


public function rules(){

return array(

array('type', 'length', 'max'=>10),

array('content', 'ext.validators.ResourceRecordValidator', 'typeAttribute' => 'type'),

);

}

ResourceRecordValidator.php:




protected function validateAttribute($object,$attribute)

{

[...]

$object->{$this->typeAttribute};

[...]

}



Hi,

aaaaah - ist ja total einfach - danke dir für deine Rückmeldung. Ich werd’s gleich mal versuchen :)

LG,

Wayne