Yii::app()->User->Getid()

Witam,

Probuję w widoku wywołać następujące wartości:

$form->hiddenField($model,‘id_user’,array(‘value’=>Yii::app()->user->getId()));

przy tworzeniu elementu pojawia się informacja że id_user nie może być puste, ok sprawdzam wartość

Yii::app()->user->getId() jest 3, z kolei w rules zmieniłem id_user na

array(‘id_user’, ‘safe’),

dodałem także:

public function beforeSave() {

    $this->id_user = Yii::app()->user->getId();


    return parent::beforeSave();


}

lecz nadal wartość id_user jest null.Jak ustawić wartość id_user z tablicy User,

Pozdrawiam

Jarek

zostawiłem w widoku:

echo $form->hiddenField($model,‘id_user’,array(‘value’=>Yii::app()->user->getId()));

a wywaliłem metode beforeSave i działa.

Twoje rozwiązanie jest niebezpieczne. Każdyu może podmienić id usera w formularzu.

Metoda beforeSave była ok.

Jeśli jej używasz to:

  • w formularzu nie potrzebujesz przekazywać jako hidden id usera

  • w formularzu nie potrzebujesz ustawiać tej włąściwości jako "safe" - bo nie przychodzi ona z zewnątrz