Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Smarty] Jak odwołać się do do własności obiektu o nazwie z myślnikiem
Forum PHP.pl > Forum > PHP
jajcarzd1
Witam

Mam takie pytanie. Otóż mam pewną tablicę zawierającą obiekty typu stdClass a w niej zmienne z nazwami które zawierają myślnik w nazwie. O ile w php jeśli mam tablice obiektów np.

  1. <?php
  2. $a[0] = new stdClass();
  3. ?>



to odwołuję się do niej w ten sposób (lub przypisuję)

  1. <?php
  2. $a[0]->{'item-one'} = 111;
  3. ?>


Natomiast takich klamer w smartach użyć nie mogę bo są zarezerwowowane więc ma ktoś pomysł jak się mogę odwołać ?

Dzięki i pozdro.
erix
Z tego, co ostatnio kopałem, to nie ma takiej możliwości.
jajcarzd1
Cytat(erix @ 14.04.2009, 11:22:11 ) *
Z tego, co ostatnio kopałem, to nie ma takiej możliwości.


No właśnie jakoś też nie znalazłem rozwiązania. Na siłę to można ewentualnie stworzyć zmienną w smartach o wartości z myślnikiem. No ale to przy większej ilości pól w klasie nie będzie zbyt ciekawym rozwiązaniem.

  1. {assign var="sof_item_id" value='sof-item-id'}
  2. {assign var="sof_date" value='sof-date'}
  3.  
  4. {foreach from=$fod item=i}
  5. <table class="fod_table">
  6. <tr>
  7. <td class="fod_name">Nr aukcji</td>
  8. <td>{$i->$sof_item_id}</td>
  9. </tr>
  10. <tr>
  11. <td class="fod_name">Data wypełnienia</td>
  12. <td>{$i->$sof_date}</td>
  13. </tr>
  14. {/foreach}
erix
To nie możesz stworzyć po prostu tablicy...? O ile pamiętam, to przetwarzanie rekurencyjnych w Smarty nie stanowi żadnego problemu.
dr_bonzo
O dziwo da sie smile.gif

1.

$object = ...
$array = new ArrayObject( $object );
$array['cos-tam'];

2.

$object->{'fvalue-string'} = '';
// edit: ah, o smarty chodzilo... wiec to odpada
jajcarzd1
Cytat(erix @ 15.04.2009, 14:41:46 ) *
To nie możesz stworzyć po prostu tablicy...? O ile pamiętam, to przetwarzanie rekurencyjnych w Smarty nie stanowi żadnego problemu.



Nie bardzo Cie rozumiem co miałeś na myśli. Tablicy czego ? Jeśli masz na myśli stworzenie zwykłej tablicy a nie tablicy obiektów, to generalnie odpada dane które są przeze mnie przetwarzane są danymi pobieranymi z WebApi allegro, więc nie mam wpływu na strukturę.
dr_bonzo
Cytat(jajcarzd1 @ 16.04.2009, 08:14:18 ) *
Cytat
To nie możesz stworzyć po prostu tablicy...?

Nie bardzo Cie rozumiem co miałeś na myśli. Tablicy czego ? Jeśli masz na myśli stworzenie zwykłej tablicy a nie tablicy obiektów, to generalnie odpada dane które są przeze mnie przetwarzane są danymi pobieranymi z WebApi allegro, więc nie mam wpływu na strukturę.



1. Czasami trzeba inaczej podejsc do problemu - po co meczyc sie z takimi obiektami jak mozna bylo dostarczyc te dane w postaci tablicy.
2. Nic wczesniej nie mowiles ze nie mozesz zmienic tego obiektu na tablice.
jajcarzd1
Cytat(dr_bonzo @ 16.04.2009, 08:28:03 ) *
2. Nic wczesniej nie mowiles ze nie mozesz zmienic tego obiektu na tablice.


Heh no myśle że akurat nie to było najważniejsze smile.gif pytanie dotyczyło tego czy można się jakoś odwołać do elemenetów o które pytałem.
skw
Widze że temat sprzed roku umarł, ale ja mam teraz problem z tym związany a nie chciałbym zakładać nowego tematu.
Więc api allegro zwraca dane w postaci, w której nazwy tabel są z myślnikami. wygląda to tak:


  1. $dogetfeedback_response = array(
  2. 'feedback-list' => array(
  3. 'f-date' => 1132128643,
  4. 'f-type' => 'POS',
  5. 'f-user-sseler' => 0),
  6. 'feedback-count' => 4545
  7. );


zmiana ręczna nie ma tutaj sensu, bo zwracanych tabel jest masa. Pytanie: czy da sie to jakoś obejść czy musze zrezygnować ze smarty?
kulczycki
a nie możesz po prostu dodać funkcji get i set do obiektu - wtedy będziesz mógł się odwołać do tych zmiennych
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.