Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Zend Paginator
Forum PHP.pl > Forum > PHP > Frameworki
PrzeeMOC
Witam!
Chciałem się zapytać o wykorzystanie Zend Paginator do wyświetlenia danych z tablicy do tabeli.

Mam tablicę o konstrukcji:

  1. Array
  2. (
  3. [0] => Array
  4. (
  5. [numer_karty] => 0001
  6. [nazwisko] => kowalski
  7. [imie] => jan
  8. [telefon] => 876543219
  9. [email] => test@email.pl
  10. )
  11.  
  12. [1] => Array
  13. (
  14. [numer_karty] => 0002
  15. [nazwisko] => nowak
  16. [imie] => roman
  17. [telefon] => 123456789
  18. [email] => ttest2@gmail.com
  19. )
  20.  
  21. )


Tablica jest importowana w modelu z pliku CSV.

Funkcja import:
  1. public function import($file)
  2. {
  3. $rows = array();
  4. $headers = array();
  5. $handle = fopen($file, 'r');
  6. while (!feof($handle) ) {
  7. $row = fgetcsv($handle, 10240);
  8. if(empty($headers))
  9. $headers = $row;
  10. else if(is_array($row))
  11. $rows[] = array_combine($headers, $row);
  12. }
  13. fclose($handle);
  14.  
  15. $adapter = new Zend_Paginator_Adapter_Array($rows);
  16.  
  17. return $adapter;
  18.  
  19. }



W kontrolerze wykonuję:

  1.  
  2. $importCSV= new Model_KartyCsv;
  3. $filename="test.csv";
  4. $adapter=$importCSV->import($filename);
  5.  
  6. $paginator = new Zend_Paginator($adapter);
  7. $paginator->setItemCountPerPage(30);
  8. $page = $this->_request->getParam('strona', 1);
  9. $paginator->setCurrentPageNumber($page);
  10. $this->view->paginator = $paginator;
  11.  


a w widoku próbuję wyświetlić:

  1. <?php echo $this->paginationControl($this->paginator, 'Sliding', 'paginator/paginator.phtml'); ?></p>
  2. <table class="standard align-center">
  3. <tr>
  4. <th>numer_karty</th>
  5. <th>nazwisko</th>
  6. <th>Imię</th>
  7. <th>telefon</th>
  8. <th>email</th>
  9. </tr>
  10. <?php foreach ($this->paginator as $user):
  11. ?>
  12. <tr class="<?php echo $this->cycle(array("light", "dark"))->next() ?>">
  13. <td><?php echo $user->numer_karty; ?></td>
  14. <td><?php echo $user->nazwisko; ?></td>
  15. <td><?php echo $user->imie; ?></td>
  16. <td><?php echo $user->telefon; ?></td>
  17. <td><?php echo $user->email; ?></td>
  18.  
  19. </tr>
  20. <?php endforeach; ?>



Widać, że coś do tabeli wczytuje, ponieważ wyświetla się prawidłowa ilość wierszy, natomiast w tabeli nie mam żadnych danych. Wnioskuję, że źle odwołuję się do pól w tablicy. Jak to zrobić prawidłowo, by wyświetlić te dane?

nospor
ciezko sprawdzic co jest w $user
  1. <?php foreach ($this->paginator as $user):
  2. <?php var_dump($user); ?>
  3.  
  4. <?php endforeach; ?>

?
PrzeeMOC
Masz rację, nie zdążyłem edytować przed Tobą smile.gif


Gdy wyświetliłem print_r($user) to otrzymałem:
  1. (
  2. [numer_karty] => 0001
  3. [nazwisko] => kowalski
  4. [imie] => jan
  5. [telefon] => 876543219
  6. [email] => test@email.pl
  7. )


Więc jestem tak ciemny, że nie umiem tego wyświetlić? ohno-smiley.gif
redeemer
Zmienna user to tablica, a Ty odwołujesz się jak do obiektu.
PrzeeMOC
Temat do zamknięcia... dziecinny błąd... dzięki!
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-2025 Invision Power Services, Inc.