User z bazy danych

Witam.

Mam maly problem z wyswietlaniem usera.

Mam zrobione kilka tabel. I jedna z nich nazywa sie user gdzie mam rekord username.

Potem zrobilem relacje z inna tabela do ktorej bede dodawal rozne informacje.

No i chce zrobic takie cos ze przy dodawaniu informacji do innej tabeli autoamtycznie zapisuje sie id user w user_id tej innej tabeli.

Wszystko jak na razie dziala. Czyli Loguje sie na dane usera z bazy, dodaje newsa i wlasnie musze puki co wybrac usera z ktorego do dodaje przez:

<?php echo CHtml::activeDropDownList($model, ‘user_id’, CHtml::listData(User::model()->findAll(), ‘id’, ‘username’));?>

No a jak wlasnie zrobic zeby nie musial wybierac tylko zeby samo zczytalo i sie zapisalo?

Witam,

Nie jestem pewny o co ci chodzi. Jeżeli o to, żeby obiekt $model zawierał dane i z tabeli ‘user’ i z tabeli w której przechowujesz dane szczegółowe o użytkownikach, to w momencie kiedy pobierasz dane z user w kontrolerze, dodaj metode with(). Szczegóły tutaj http://www.yiiframew…ord#with-detail




User::model()->with('user_details')->findAll();



gdzie ‘user_details’ to nazwa relacji z twojego modelu do ‘user’ pomiedzy tabelami ‘user’ a ta z szczegółami użytkowników.




return array(

     'user_details'=>array(self::HAS_ONE, 'User_details', 'user_id'),

);




Mam nadzieję, że o to chodziło. Jeżeli nie, to musisz napisać coś więcej. Najlepiej fragment kontrolera, modelu i widoku.

Spoko teraz dziala :wink:

Hej,

pamiętaj też o klasie CWebUser do której dostęp masz w każdym miejscu aplikacji poprzez Yii::app()->user albo Yii::app()->getUser().

Jeśli chciałbyś pobrać nazwę zalogowanego użytkownika to piszesz Yii::app()->getUser()->getName(), albo Yii::app()->user->name

Wykorzystasz wtedy to, co masz w Yii standardowo i nie będziesz wykonywał dodatkowych joinow w sql’u, zeby wyciągnąć relacje z bazy, co troche odciązy aplikację…

Pozdrawiam,

pd