[MySQL][PHP]Przekazanie obiektu do widoku |
[MySQL][PHP]Przekazanie obiektu do widoku |
21.10.2014, 19:39:07
Post
#1
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 3 Dołączył: 4.03.2010 Ostrzeżenie: (0%) |
Witam,
Mam problem ktory idealnie nadaje sie na przedszkole i nie mogę nigdzie znaleść rozwiązania. Mam funkcje która pobiera sobie dane:
I funkcje która ma je wyświetlać:
Napisałem to samo w jednym pliku i tutaj działa:
Widze gdzie jest różnica tzn że w 2 przykładzie dane z obiektu są pobierane w petli a tutaj je wysyłam stąd w 2 przykładzie mam ładnie pokazane wszystkie przykłady a w pierwszym mam pętle pierwszego rekordu ( bo tylko go przekazuje). Pytania sa 2: 1) Jak przenieść for.... do funkcji pobierz_liste...... by w widoku czyli wyswietl_liste.... mógł sobie tylko podać nazwy $tablica_bydla->numer itp.? 2) Jak z funkcji pobierającej dane przekazać liczbe znalezionych rekordów? mam zrobić tam dodatkową funkcje liczącą czy poprostu dodać drugi argument do wyswietl_liste_bydla i jemu przekazać ilość? Dzięki za pomoc. |
|
|
21.10.2014, 21:02:02
Post
#2
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 8 Dołączył: 22.04.2012 Ostrzeżenie: (0%) |
Ad 1. No normalnie ... wstaw po prostu tą pętle do tej funkcji - samo fetch_object pobiera tylko jeden wiersz wyniku, dlatego musisz zrobić pętle za pomocą właściwości num_rows obiektu wyniku - całość tego robisz po stronie modelu i zwracasz dane.
Ad 2. Nie musisz przekazywać żadnej ilości, po prostu poszczególne znalezione rekordy dodajesz do tablicy zanim je przekażesz do widoku, a w nim jeżeli chcesz wyświetlić wszystko robisz pętle i tyle. Ogólnie to powinno działać tak: 1. Odpowiednia metoda kontrolera zgłasza widokowi żądanie wyświetlenia odpowiednich rekordów przekazując mu obiekt modelu, oraz id żądania. 2. Widok pobiera sobie z modelu surowe dane, wczytuje odpowiedni szablon z elementami dynamicznymi, czyli ze wstawkami zmiennych i łączy wszystko w całość i wypluwa wszystko na wyjście. |
|
|
21.10.2014, 21:11:39
Post
#3
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 3 Dołączył: 4.03.2010 Ostrzeżenie: (0%) |
OK, czyli pobierz dodałem:
Według tego skrypt wyświetlania powinien działać niezmieniony, jednak caly czas pokazuje mi pętle pierwszego rekordu - jak to rozgryść? Możesz podać kod jak to powinno wyglądać? Po stronie widoku też mam dodać pętle? |
|
|
21.10.2014, 21:20:37
Post
#4
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 8 Dołączył: 22.04.2012 Ostrzeżenie: (0%) |
Wyniki musisz wrzucić do tablicy, czyli tak:
I taką tablicę przekazujesz do widoku i tam również robisz pętle po niej jeżeli chcesz wyświetlić wszystkie dane z poszczególnych rekordów - można to oczywiście trochę modyfikować wczytując layout pojedynczego wyniku w wszystko składać w klasie widoku, ale to już inna bajka. |
|
|
21.10.2014, 21:43:50
Post
#5
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 3 Dołączył: 4.03.2010 Ostrzeżenie: (0%) |
I nadal jestem w tym samym miejscu, bo obiekt mam przekazany, ale pokazuje mi tylko jeden rekord ( teraz już nie pierwszy a ostatni - mogę prosić o napisanie funkcji która wyświetli pokolei te rekordy? Bo to jest głownie problemem że nie wiem jak je obrobić i wyświetlić od strony widoku.
|
|
|
21.10.2014, 22:36:15
Post
#6
|
|
Grupa: Zarejestrowani Postów: 248 Pomógł: 55 Dołączył: 1.06.2010 Skąd: mam to wiedzieć? Ostrzeżenie: (0%) |
Stary... Zwracasz $tablica_bydla (jeden obiekt) tak?
I zobacz w swojej petli for tylko nadpisujesz swoj obiekt, ktory pozniej zwracasz... Przerob tak:
i w widoku robisz:
Olej tabelki. Zobacz co moze css3 -> flex box. szybko, latwo. Ten post edytował ixpack 21.10.2014, 22:41:49 -------------------- Łatwo jest być odważnym za murami własnego zamku.
|
|
|
10.11.2014, 17:23:20
Post
#7
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 3 Dołączył: 4.03.2010 Ostrzeżenie: (0%) |
Dzięki ci bardzo - działa właśnie tak jak chciałem!
Pozwole sobie odświeżyć temat - jak z takiego zapytania pobrać wynik i jedną zmienną dać do innego zapytania? Jak w widoku mam pętle foreach i wynik $bydle->id to chciałbym na podstawie tego wyniku zrobić zapytanie - ktoś pomoże mi to ugryść?
w strukturalnym poprostu robiłem po foreach zapytanie ale nie wiem jak to zrobić by nie było to w widoku. //EDIT Zrobiłem:
nazwe wywołuje jako $wiersz->nazwa, ale takie coś mieć w widoku to wstyd czy przerobienie tego na zasadzie:
będzie bardziej zgodne z oddzielaniem modelu/kontrolera od widoku? jak to ugryść by miało ręce i nogi? Ten post edytował Marek607 10.11.2014, 18:08:33 |
|
|
Wersja Lo-Fi | Aktualny czas: 19.04.2024 - 03:26 |