adressbuch foreign key (help)

Hallo zusammen,

ich bin ein yii noob.

ich blicke einfach nicht durch, wie ich bei meinem adressbuch die user_id bei einem kontakt als foreign key definieren kann.

normaler weise könnte man dies bei einem insert query, wie folgt angeben.

INSERT INTO tbl_contakt (id,name,telnr,fk_user_id) VALUES(id,name,telnr,fk_user_id)

ich weis dass man die ID des eingeloggten Users mit Yii::app()->user->id auslesen kann.

ich will einfach nur beim erstellen eines kontaktes (fk_user_id = Yii::app()->user->id) setzten.

vielleicht kann mir jemand sagen wie man dies in yii macht.

Vielen Dank!

Der Möglichkeiten gibt es viele. Du könntest das z.B. in eine beforeSave()-Methode in dein Model packen:


public function beforeSave()

{

    parent::beforeSave();

    $this->fk_user_id=Yii::app()->user->id;

    return true;

}

Damit wird dann immer beim Speichern eines Records die id gesetzt - also z.B. auch, wenn du das Record irgendwo in einem Admin-Bereich bearbeiten möchtest. Evtl. möchtest du das also noch nach Szenario ausfiltern:


public function beforeSave()

{

    parent::beforeSave();

    if ($this->scenario==='addnew')

        $this->fk_user_id=Yii::app()->user->id;

    return true;

}

Das Szenario musst du dann natürlich an der entsprechenden Stelle setzen, bevor du das Model speicherst.




$contact = new Contact();

$contact->attributes = $_POST['Contact'];

$contact->fk_user_id = Yii::app()->user->id;

$contact->save();



ok danke