Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony]Timestampable, Pobranie danych
Szymciosek
post
Post #1





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


Witam,
podczas pobierania z bazy danych u.created otrzymuję:
Kod
{"created":{"date":"2012-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Warsaw"}}


czyli date, timezone_type, timezone, mi jest potrzebne tylko date. Jak się do tego dostać ?
Dodaję za pomocą: "@Gedmo\Timestampable(on="update")"

Odpadają wszelkie pomysły typu
$date = date_z_sql->date... coś w tym stylu, bo raz będę potrzebował tego, a raz nie.

EDIT::
Dodam jeszcze, że pobieram dane:

  1. $query = $doctrineManager->createQuery(
  2. "SELECT $cols FROM xxxBundle:Users u WHERE u.asd = '$asd'"
  3. );


Ten post edytował Szymciosek 23.10.2012, 22:07:50
Go to the top of the page
+Quote Post
marcio
post
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Wyglada na to ze zwraca ci to w postaci json(mam nadzieje ze nie powiedzialem glupoty (IMG:style_emoticons/default/haha.gif) ) wiec uzyj json_decode i pozniej pobierz sobie z tablicy
Go to the top of the page
+Quote Post
Szymciosek
post
Post #3





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


Coś czuję, że nie bardzo mogę, bo json na koniec zwracany jest do czegoś innego, a sam json, który zwracam wygląda:

w przypadku pobierania tylko created:
Kod
{"data":{"users":{"created":{"date":"2012-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Warsaw"}},"response":{"status":"success"}}}


a już w przypadku np created oraz username:
Kod
{"data":{"users":{"created":{"date":"2012-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Warsaw"},"username":"username@xxx.pl"},"response":{"status":"success"}}}


Więc trochę nie w tą stronę, problem ten jest spowodowany chyba timestampable i to chyba na nim trzeba się skupić, to jak odbiera dane z bazy. Gdzieś coś było wspomniane o jakimś hmm konwerterze, który podczas pobierania nie zwraca całej zawartości wiersza tylko po prostu pobiera co potrzeba i dopiero wtedy zwraca, ale teraz nie mogę niczego takiego znaleźć ;/

EDIT::
W sumie podczas var_dump($result) z bazy dostaję
Kod
array (size=1)
  0 =>
    array (size=1)
      'created' =>
        object(DateTime)[440]
          public 'date' => string '2012-08-20 00:00:00' (length=19)
          public 'timezone_type' => int 3
          public 'timezone' => string 'Europe/Warsaw' (length=13)

ale i tak nie wiem jak zrobić to automatycznie podczas wyboru pola created, ale żeby nie działało zawsze, bo nieraz wybiorę więcej niż tylko pole created i wtedy trzeba kombinować jak to pobrać dobrze z bazy.

EDIT2::
Przy próbie
var_dump($result[0]['created']->date);

otrzymuję

Kod
Notice: Undefined property: DateTime::$date in


Ten post edytował Szymciosek 24.10.2012, 20:21:52
Go to the top of the page
+Quote Post
destroyerr
post
Post #4





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


Nie wiem dlaczego xdebug oznacza te właściwości jako publiczne ale publiczne nie są. Powinieneś skorzystać z funkcji format.
Go to the top of the page
+Quote Post
Szymciosek
post
Post #5





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


Format rozwiązuje ten problem, ale chyba muszę zastosować tutaj if.

  1. if (count($result) > 0)
  2. {
  3. foreach ($result[0] as $key => $value)
  4. {
  5. $data['data']['users'][$key] = $value;
  6. }
  7. ...


i wtedy, gdy natrafi w wymaganych polach na created to dodawać z ->format(...), a gdy już to minie to dodawać resztę poza if albo else, jeszcze się zastanowię.

Dziękuję (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 17:00