2013-02-03 19 views
6

Gibt es eine Möglichkeit, ein Array von Elementen in der rules()-Methode eines Yii-Modells anzufordern? Zum Beispiel:Yii-Validierungsregeln für ein Array

public function rules() 
{ 
    return array(
      array('question[0],question[1],...,question[k]','require'), 
    ); 
} 

ich in Situationen ausgeführt wurden, wo ich mehrere Arrays von Elementen validieren müssen aus einem Formular und ich kann nicht eine gute Art und Weise des Gehens über es andere tun, als die scheinen zu finden, über. Ich habe das gleiche Problem bei der Angabe attributeLables(). Wenn jemand einen Rat oder einen besseren Weg dazu hat, würde ich es sehr schätzen.

+0

dlnGd0nG, der Link erwähnt nicht, wie Arrays von Elementen validiert werden. – dataplayer

+0

Ich dachte, Sie möchten Tabelleneingabe hinzufügen. Was sind diese 'Frage [x]'? Sind sie Klassenattribute? und mit Yii-Modell beziehen Sie sich auf was? 'CActiveRecord',' CfromModel' oder 'CModel'? – dInGd0nG

+0

dlnGd0nG, die 'question [x]' sind Namenswerte der Formulare, die ich einreiche. Das Yii-Modell, das ich erwähne, sind speziell CFormModels. – dataplayer

Antwort

13

können Sie die CTypeValidator aliased verwenden, indem type

public function rules() 
{ 
    return array(
      array('question','type','type'=>'array','allowEmpty'=>false), 
    ); 
} 
+0

Das ist total was ich gesucht habe. Ich habe einfach "type" aliasiert, wie du schon erwähnt hast: 'array ('question', 'CTypeValidator', 'type' => 'array', 'allowEmpty' => false),' und es hat perfekt funktioniert. Vielen Dank! – dataplayer

2

Mit array('question','type','type'=>'array','allowEmpty'=>false), können Sie einfach sicher, dass Sie genau das Array erhalten, aber Sie wissen nicht, was in diesem Array. Um Array-Elemente zu validieren, sollten Sie Folgendes tun:

Verwandte Themen