ActiveRecord model um nicht DB Feld ergänzen

Hallo!

Ich würde gern mein Datenmodell um zusätzliches Feld ergänzen, welches nur durch das Model validiert, aber nicht in der DB gespeichert werden soll.

In meinem konkreten Fall ist das eine Checkbox nach dem Motto "Ja, ich habe die AGB gelesen". Das ganze möchte ich gerne auf required validieren.

Was muss ich im Model und im View unterbringen, damit das klappt?

Meine Form habe ich so ergänzt:


<div class="row">

	<?php echo CHtml::checkBox('allowPublish', false, array('style'=>'float: left; margin-right: 10px;')); ?>

	<?php echo CHtml::label('Yes, I agree', 'allowPublish'); ?>

</div>

was auch schon mal die erwartete Ausgabe produziert. Ergänze ich nun aber die Rules um


array('allowPublish', 'required')

meckert er rum.

>> Eigenschaft "Vote.allowPublish ist nicht definiert.

Wie gehe ich es richtig an?

Versuche mal, die Variable $allowPublish im Model zu definieren:




class xx extends CActiveRecord {

  public $allowPublish;

...



Ah, ok. Jetzt ist der Fehler weg.

Nun habe ich die rules() um


array('allowPublish', 'required'),

ergänzt und bekomme jetzt direkt beim Aufruf der Seite

>> Bitte beheben Sie folgende Eingabefehler: Wir benötigen Allow Publish

ohne dass submitted wurde :blink:

Ah, der Fehler lag an anderer Stelle im Code. Da wurde schon in der Action immer validate() aufgerufen. Geht jetzt, danke!