Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CakePHP] Wyciąganie informacji z 2 tabeli
Forum PHP.pl > Forum > PHP > Frameworki
patrol114
Witam,

uczę się dopiero CakePHP od jakiegoś czasu, pisze portal społecznościowy chciał bym wyciągać informacje użytkownika który wpisał sobie coś na swoją tablice.

Tutaj mam kod profilu

  1. function profil( $id = null ){
  2. $validationError;
  3. $userData;
  4.  
  5. if ( $this->Auth->user() ) {
  6.  
  7. $userData = $this->User->read(null, $this->Auth->user('id'));
  8.  
  9. if( !empty( $this->data ) ){
  10. $this->Author->id = $this->Auth->user('id');
  11.  
  12. if(empty($this->data['User']['haslo'])) {
  13.  
  14. if(empty($this->data['User']['haslo'])) $this->data['User']['haslo'] = $userData['User']['haslo'];
  15.  
  16. if( $this->User->save( $this->data ) ){
  17.  
  18. }else{
  19. // błąd w validacji
  20. $validationError = $this->User->validationErrors ;
  21. }
  22. }else{
  23. $this->User->set( $this->data );
  24. $this->User->validates();
  25. $validationError = $this->User->invalidFields(); ;
  26. }
  27. }
  28.  
  29. }else{
  30. $this->Session->setFlash(__('Błędny używkonik.', true));
  31. }
  32.  
  33.  
  34. $this->data = $this->User->read(null, $this->Auth->user('id'));
  35. $this->data['User']['haslo'] = "";
  36.  
  37. if( isset($validationError) ) $this->Author->validationErrors = $validationError;
  38. $this->set('user', $this->data );
  39.  
  40. }


Posiadam w modelu User funkcje hasMany połączony z tabela ['Table']

Chciał bym wyświetlać tablice użytkownika tak

  1. <?PHP echo $user['Table']['opis']; ?>


Piekarnikiem zbudowałem sobie model controller view dla tablicy.

Informacje z Tabeli User wyświetla normalnie np. Imię i Nazwisko zalogowanego użytkownika.

Nie wiem czy poprawnie wszystko piszę jeśli gdzieś zrobiłem błąd proszę o poprawienie.
kicaj
Wpisz sobie w widoku:
Kod
pr($user);
i pokaz wynik
patrol114
  1. (
  2. [User] => Array
  3. (
  4. [id] => 42
  5. [email] => patrol114@gmail.com
  6. [imie] => Patryk
  7. [nazwisko] => Dabrowski
  8. [haslo] =>
  9. [miejscowosc] => sdfaaa
  10. [gg] => sdfaaa
  11. [tell] => sdfaaa
  12. [sex] => M
  13. [urodzony] => 1993-07-09
  14. )
  15.  
  16. [Table] => Array
  17. (
  18. [0] => Array
  19. (
  20. [id] => 1
  21. [temat] => Siema
  22. [opis] => Czesc
  23. [user_id] => 42
  24. [data] => 2011-08-09
  25. )
  26.  
  27. )
  28.  
  29. )
kicaj
Teraz mozesz wyswietlic
Kod
echo $user['Table'][0]['opis'];
patrol114
Mógłbyś wyjaśnić dlaczego takie zastosowanie ?
kicaj
W Cake'u istnieja m.in relacje typu hasMany oraz hasOne (odpowiednio: maDuzo i maJednego... - jeszcze tego w ten sposob nie tlumaczylem:)

Otoz...
Relacja hasOne sluzy do tego jest np. 1 User ma 1 Profile (uzytkownik posiada profil - dane charakterystyczne w wystepujace tylko raz: imie, nazwisko, itd.)
Relacja hasMany sluzy do tego ze np. 1 User ma ileś Odpowiedzi (np. na forum - zalozyl ileś tematow).

Przyklad:
Wyswietl informacje o samochodzie i jego poprzednich kierowcach:
Car hasOne Engine (samochod posiada silnik) AND Car hasMany Drivers (...i posiada grupę kierowców)

Nie wiem czy to zrozumiale...

Dla wyswietlenia wynikow hasMany wystarczy wyswietlic $car['Car']['engine'] natomiast kierowcow nalezy potraktowac petla 'foreach' ze wzgledu ze jest to tabela wynikow...
patrol114
lecz po foreach on nie wie co to jest ' Table '
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2020 Invision Power Services, Inc.