CRUD und serialisierte Daten

Hallo!

Ich bin noch vollkommener Anfänger in Yii und wurde direkt mit einem eigenen kleinen Projekte ins kalte Wasser geworfen. ;)

Bisher kam ich gut zurecht und bin wirklich beeindruckt von diesem Framework. Nun stieß ich jedoch auf ein Problem, für das mir der rechte Weg nicht einfallen mag.

Es gibt eine Tabelle projekte, die unter anderen ein Feld namens checkliste enthält. In diesem Feld wird jeweils ein serialisiertes Array gespeichert, das von folgender Form ist:


$checkliste = array('attribut1'=>1, 'attribut2'=>0, 'attribut3'=>1, ...);

Für die Tabelle projekte habe ich natürlich das entsprechende Model und die CRUD-Operationen erstellt.

Nun ist meine Aufgabe, im CRUD-Formular das serialisizete Array in Checkboxen, bzw. Radiobuttons anzuzeigen und beim Speichern die Daten dann wieder zu serialisieren und so abzuspeichern.

Kann mir jemand einen Tipp geben, wie ich das am besten und unkompliziertesten machen kann?

Ein Ansatzpunkt, der mir einfiel, war, das projekte-Model um die jeweiligen Attribute zu erweitern, also:


class Projekte extends CActiveRecord

{

    public $attribut1, $attribut2, ...;

Dazu müssen die Attribute noch in die Rules mit integriert werden:


	public function rules()

	{

		return array(

			array('attribut1, attribut2, ...', 'safe'),

Mit der function beforeSafe werden die Attribute dann wieder in ein Array gepackt, dieses dann serialisert und in der Datenbank gespeichert.

Ist dieser Vorgang der einfachste Weg? Wenn die Attributen-Liste lang wird, ist das ja ganz schon aufwändig… Oder bringt Yii da etwas besseres schom mit?

Vielen Dank im Voraus!

Ich benutze und empfehle dafür diese extension bzw. behavior:

http://www.yiiframework.com/extension/cserializebehavior/

du kannst in der extension dann einstellen, ob du php’s serialize oder json_encode/decode benutzen

möchtest.