Yii Framework Forum: User z bazy danych - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

User z bazy danych Rate Topic: -----

#1 User is offline   izzol 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 10
  • Joined: 28-February 09

Posted 06 October 2009 - 06:29 AM

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?
0

#2 User is offline   sidewinder 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 210
  • Joined: 08-July 09
  • Location:Poland

Posted 06 October 2009 - 09:20 AM

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.
---------------------------------------------------------------------
"Never memorize what you can look up in books."
Albert Einstein
0

#3 User is offline   izzol 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 10
  • Joined: 28-February 09

Posted 15 October 2009 - 07:33 AM

View Postsidewinder, on 06 October 2009 - 09:20 AM, said:

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 ;-)
0

#4 User is offline   drylko 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 86
  • Joined: 13-September 09
  • Location:Poland

Posted 17 October 2009 - 01:22 PM

View Postizzol, on 06 October 2009 - 06:29 AM, said:

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?


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
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users