Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [CakePHP] Wyciąganie informacji z 2 tabeli
patrol114
post 16.08.2011, 17:36:43
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 13.03.2008

Ostrzeżenie: (0%)
-----


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.

Ten post edytował patrol114 16.08.2011, 17:45:04
Go to the top of the page
+Quote Post
kicaj
post 16.08.2011, 17:40:48
Post #2





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

Ostrzeżenie: (0%)
-----


Wpisz sobie w widoku:
Kod
pr($user);
i pokaz wynik


--------------------
CakePHP Developer
blog.kdev.pl

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
patrol114
post 16.08.2011, 17:42:59
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 13.03.2008

Ostrzeżenie: (0%)
-----


  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. )
Go to the top of the page
+Quote Post
kicaj
post 16.08.2011, 17:45:29
Post #4





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

Ostrzeżenie: (0%)
-----


Teraz mozesz wyswietlic
Kod
echo $user['Table'][0]['opis'];


Ten post edytował kicaj 16.08.2011, 17:49:10


--------------------
CakePHP Developer
blog.kdev.pl

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
patrol114
post 16.08.2011, 17:51:15
Post #5





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 13.03.2008

Ostrzeżenie: (0%)
-----


Mógłbyś wyjaśnić dlaczego takie zastosowanie ?
Go to the top of the page
+Quote Post
kicaj
post 16.08.2011, 17:58:01
Post #6





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

Ostrzeżenie: (0%)
-----


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...


--------------------
CakePHP Developer
blog.kdev.pl

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
patrol114
post 16.08.2011, 18:17:29
Post #7





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 13.03.2008

Ostrzeżenie: (0%)
-----


lecz po foreach on nie wie co to jest ' Table '
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 11.12.2019 - 06:05