Yii Framework Forum: Frage Zu Validator-Extension - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Frage Zu Validator-Extension Rate Topic: -----

#1 User is offline   wayne_juckts 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 08-October 12

Posted 08 October 2012 - 02:30 PM

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
0

#2 User is offline   Coksnuss 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 140
  • Joined: 14-May 09

Posted 09 October 2012 - 04:15 AM

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};
[...]
}

0

#3 User is offline   wayne_juckts 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 08-October 12

Posted 09 October 2012 - 04:45 AM

Hi,

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

LG,
Wayne
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users