Piotr Krajewski

Piotr Krajewski web application
programmer

Temat: sf2 - modele

Witam serdecznie,

ktoś się orientuje jak w s2 (z doctrine) wyciągając dane po przez model zamienić wynik na arraya ? chodzi mi coś na zasadzie metody ->toArray()
Przyklad:


$cities = $this->getDoctrine()->getRepository('DemoAcmeBundle:Cities')->findAll(
array('active' => 1),
array('name' => 'ASC')
);
$cities->toArray() // tego oczywiście nie można zrobić, a szukam podobnej metody.
Bartłomiej Jończy

Bartłomiej Jończy iOS / Java EE
Developer

Temat: sf2 - modele

Obstawiam HydrationMode przy wyciąganiu danych.

konto usunięte

Temat: sf2 - modele

$query = $em->createQuery('SELECT u FROM CmsUser u');
$users = $query->getResult(Query::HYDRATE_ARRAY);


lub

$users = $query->getArrayResult();


http://www.doctrine-project.org/docs/orm/2.0/en/refere...
Kamil Adryjanek

Kamil Adryjanek PHP / Symfony2 /
Zend, Python /
Django, Java, JS

Temat: sf2 - modele

W ten sposób tego nie zrobisz - będziesz musiał wykorzystać query:

$query = $this->getDoctrine()->getRepository('DemoAcmeBundle:Cities')->createQueryBuilderr('c')
->where('c.active = :active')
->setParameter('active', 1)
->orderBy('c.name', 'ASC')
->getQuery();
$cities = $query->getResult(Query::HYDRATE_ARRAY);
albo skrót:
$cities= $query->getArrayResult();
Piotr Krajewski

Piotr Krajewski web application
programmer

Temat: sf2 - modele

hmm chcialem uniknąc budowania sql'i kiedy mam do podania np. tylko id np. ->find($id)

no ale oki. Dzięki za odpowiedź.
Piotr W.

Piotr W. Symfony2 / MongoDB

Temat: sf2 - modele

Piotr Krajewski:
hmm chcialem uniknąc budowania sql'i kiedy mam do podania np. tylko id np. ->find($id)

no ale oki. Dzięki za odpowiedź.

Z ciekawosci zapytam dlaczego nie mozesz (nie chcesz) uzywac kolekcji tylko musisz wyciagac array'e?
Zawsze po wyciagnieciu kolekcji mozesz zamienic ja na array'a.Piotr Walków edytował(a) ten post dnia 08.09.11 o godzinie 02:56
Piotr Krajewski

Piotr Krajewski web application
programmer

Temat: sf2 - modele

to proste, czasami potrzebuje zwrocic dane do tpl'ki w postaci arraya bez zadnych modyfikacji na polach i aby to zrobic po wyciagniecu kolekcji musze za kazdym razem robic for'a np.


for ($i=0, $c=count($object); $i<$c; $i++){
$array[] = array(
'id' => $object[$i]->getId(),
'name' => $object[$i]->getName()
)
}
return $array;


Zawsze po wyciagnieciu kolekcji mozesz zamienic ja na array'a.

no wlasnie dlatego szukalem metody na wzor toArray by tego nie robic w powyzszy sposob.
Piotr W.

Piotr W. Symfony2 / MongoDB

Temat: sf2 - modele

Piotr Krajewski:
to proste, czasami potrzebuje zwrocic dane do tpl'ki w postaci arraya bez zadnych modyfikacji na polach i aby to zrobic po wyciagniecu kolekcji musze za kazdym razem robic for'a np.


for ($i=0, $c=count($object); $i<$c; $i++){[/quote]> $array[] = array([quote] 'id' => $object[$i]->getId(),
'name' => $object[$i]->getName()
)
}
return $array;


Zawsze po wyciagnieciu kolekcji mozesz zamienic ja na array'a.

no wlasnie dlatego szukalem metody na wzor toArray by tego nie robic w powyzszy sposob.

Dalej nie wiem po co, skoro w twigu (Twojej tpl) mozna robic z tym co chcesz, np :
$cities = $this->getDoctrine()->getRepository('DemoAcmeBundle:Cities')->findAll(
array('active' => 1),
array('name' => 'ASC')
);
$params = array('cities' =>$cities);
return $this->render('TwojBundle:Cities:cities.html.twig', $params);

i w twigu :
{% for city in cities %}
<div>{{ city.id }}</div>
<div>{{ city.name }}</div>
{% endfor %}

Wydaje mi sie ze troche na odwrot podszedles do sprawy.

// poprawilem twigaPiotr Walków edytował(a) ten post dnia 08.09.11 o godzinie 14:35
Piotr Krajewski

Piotr Krajewski web application
programmer

Temat: sf2 - modele

hmmm :) no to rozwiazales moj problem gdyz w twigu probowalem zrobic tak jak w kontrolerze :D getName() i to niedzialalo :P

dzieki za wskazowke :)

Następna dyskusja:

sf2 i użycie akcji w layout




Wyślij zaproszenie do