[phptal] warunek w pętli |
[phptal] warunek w pętli |
22.02.2012, 09:03:56
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 22.02.2012 Ostrzeżenie: (0%) |
Witam wszystkich, to mój dziewiczy post
O jakiegoś czasu korzystam z PHPTAL - jestem zachwycony, jednak ostatnio próbuję skorzystać z warunków w pętli i się nie udaje . Niby wygląda ok, ale nie działa. Oto fragment szablonu: Status przyjmuje wartości 0,1,2. Efekt pętli jest taki, że zawsze jest spełniony warunek 1 (jakby ${item/status} miał wartość cały czas 0), pomimo iż wartość statusu do klasy podstawiana jest poprawnie (0-2). Jak powinien poprawnie wyglądać ten warunek? Ten post edytował brobo 22.02.2012, 09:05:34 |
|
|
22.02.2012, 17:22:04
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 373 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Warunek wygląda popranie. Pokaż var_dump($items);
-------------------- |
|
|
22.02.2012, 17:43:35
Post
#3
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 22.02.2012 Ostrzeżenie: (0%) |
Dzięki za odpowiedź, bałem się, że system jest jednak zbyt mało popularny... Oto jeden z elementów:
Swoją drogą to dokumentacja nie jest mocną stroną tego systemu. Ten post edytował brobo 22.02.2012, 17:44:03 |
|
|
22.02.2012, 20:28:24
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 373 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
A masz włączone na devie raportowanie błędów? Kropka w php: oznacza -> co jest w dokumentacji opisane. Da ci to Notice: Trying to get property of non-object
TAL jest świetnie opisany z masą przykładów jak poszukasz oryginału z Pythona. Nie wszystko w PHPTAL jest zaimplementowane. -------------------- |
|
|
23.02.2012, 10:19:13
Post
#5
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 22.02.2012 Ostrzeżenie: (0%) |
Nie chciałbym się wykazywać tutaj jakąś ignorancją, ale szczerze powiedziawszy Twój post trochę przerósł moje umiejętności i wiedzę więc prosze o szczegóły.
A masz włączone na devie raportowanie błędów? Przetwarzam szablony zgodnie z manualem (jak tutaj http://phptal.org/manual/en/split/firstexample.html), więc błedy mam wyświetlane, jakie są jeszcze możliwości raportowania - nie mam pojęcia. Cytat Kropka w php: oznacza -> co jest w dokumentacji opisane. Da ci to Notice: Trying to get property of non-object Próbowałem już różnych opcji ($item/status, ${item/status}), ale takiego błędu nie otrzymałem. Cytat
Nawet nie wiedziałem, że mogę posługiwać się wewnątrz szablonu do tego stopnia php, ale jednak chciałbym tego uniknąć - właśnie ta wymuszona czystość kodu szablonów najbardziej mi się podoba(ła). Jak mogę się jeszcze dostać do wartości w tej tablicy/zmiennej w tym warunku? Chyba jest jakiś sposób... Cytat TAL jest świetnie opisany z masą przykładów jak poszukasz oryginału z Pythona. Nie wszystko w PHPTAL jest zaimplementowane. Dzięki, spróbuję, choć dodtychczas bałem się, że mój zupełny brak znajomości Pythona może być dużą przeszkodą. |
|
|
23.02.2012, 12:08:05
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 373 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Raportowanie błędów dotyczy samego PHP.
Albo w logach serwera. Chyba oczywistym powinno być że pisanie w domu/pracy -> włączamy wszystkie żeby uniknąć błędów w kodzie. Na serwerze produkcyjnym na wszelki wypadek wyłączamy. Kod który Ci wkleiłem to efekt kompilacji tego fragmentu kodu. Jak widzisz kropka wewnątrz php: to -> co daje próbę odniesienia do obiektu w czasie gdy ty przekazujesz do szablonu tablicę. Zrzucasz tu logikę na widok. Najlepiej sprawdź gdzieś w modelu warunek i przekaż tylko true/false. -------------------- |
|
|
23.02.2012, 19:00:27
Post
#7
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 22.02.2012 Ostrzeżenie: (0%) |
Raportowanie błędów dotyczy samego PHP. Albo w logach serwera. Chyba oczywistym powinno być że pisanie w domu/pracy -> włączamy wszystkie żeby uniknąć błędów w kodzie. Na serwerze produkcyjnym na wszelki wypadek wyłączamy. To jasne, myślałem, że piszesz o talu. Jeśli chodzi o raportowanie (wszystkich) błędów to zawsze robię to warunkowo - jedną zmienną włączam/wyłączam raportowanie php, szablonów i mysql. W praktyce wygląda to dokładnie jak napisałeś - podczas pisania włączam, później wyłączam. Czasami, gdy zachodzi potrzeba obejrzenia błędów już podczas pracy ograniczam je drugą zmienną do (mojego) ip. Prosto i skutecznie. Cytat Kod który Ci wkleiłem to efekt kompilacji tego fragmentu kodu. Jak widzisz kropka wewnątrz php: to -> co daje próbę odniesienia do obiektu w czasie gdy ty przekazujesz do szablonu tablicę. Zrzucasz tu logikę na widok. Najlepiej sprawdź gdzieś w modelu warunek i przekaż tylko true/false. Liczyłem na to, że uda się bez tworzenia kolejnych elementów tablicy |
|
|
23.02.2012, 19:32:25
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 373 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
To po co w takim razie tworzysz tablicę?
-------------------- |
|
|
24.02.2012, 14:57:04
Post
#9
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 22.02.2012 Ostrzeżenie: (0%) |
I to jest chyba jedyny i właściwy kierunek, choć mnie osobiście średnio odpowiada, dlatego go unikałem (staare przyzwyczajenia).
Dzięki. |
|
|
24.02.2012, 15:54:22
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 373 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Zależy jak generujesz model, czy np korzystasz z jakiegoś frameworka. Zawsze masz http://php.net/manual/en/class.arrayobject.php. Albo w PDO / innym zwracany obiekt bezpośrednio przekazać do PHPTALa. Wtedy praca jest super przyjemna. Ja osobiście korzystam z http://martinfowler.com/eaaCatalog/dataMapper.html . A wybór według mnie bardzo dobry i będziesz zadowolony. Nie wyobrażam sobie pracy z pseudo-sieczkowymi szablonami które akceptują dane jak popadnie. Później pojawia się płacz że parser XMLa w przeglądarkach jest zły, bo nie akceptuje różnych głupot.
-------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 26.09.2024 - 18:12 |