Query con Doctrine en Form
Versión 4 (Guillermo Zdanowicz, 29/08/2012 10:40)
1 | 1 | Guillermo Zdanowicz | h1. Query con Doctrine en Form |
---|---|---|---|
2 | 1 | Guillermo Zdanowicz | |
3 | 1 | Guillermo Zdanowicz | public function obtenerPlanillasAreaAsignadas($area) |
4 | 1 | Guillermo Zdanowicz | { |
5 | 1 | Guillermo Zdanowicz | |
6 | 1 | Guillermo Zdanowicz | $q = Doctrine_Query::create() |
7 | 1 | Guillermo Zdanowicz | ->from('Planillas p'); |
8 | 1 | Guillermo Zdanowicz | |
9 | 1 | Guillermo Zdanowicz | $planillas_asignadas = $q->createSubquery() |
10 | 1 | Guillermo Zdanowicz | ->select('pa.planillas_id') |
11 | 1 | Guillermo Zdanowicz | ->from('PlanillasAreas pa') |
12 | 1 | Guillermo Zdanowicz | ->where('pa.areas_id = ?'); |
13 | 1 | Guillermo Zdanowicz | |
14 | 1 | Guillermo Zdanowicz | $q->where('p.id IN (' . $planillas_asignadas->getDql() . ')'); |
15 | 1 | Guillermo Zdanowicz | |
16 | 1 | Guillermo Zdanowicz | return $q->execute(array($area)); |
17 | 1 | Guillermo Zdanowicz | |
18 | 1 | Guillermo Zdanowicz | } |
19 | 2 | Guillermo Zdanowicz | |
20 | 3 | Guillermo Zdanowicz | |
21 | 2 | Guillermo Zdanowicz | --- |
22 | 3 | Guillermo Zdanowicz | |
23 | 2 | Guillermo Zdanowicz | para definir como devolver resultados se tiene |
24 | 3 | Guillermo Zdanowicz | |
25 | 2 | Guillermo Zdanowicz | --- |
26 | 2 | Guillermo Zdanowicz | |
27 | 2 | Guillermo Zdanowicz | $q = Doctrine_Query::create() |
28 | 2 | Guillermo Zdanowicz | ->from('Post p') |
29 | 2 | Guillermo Zdanowicz | ->setHydrationMode(Doctrine::HYDRATE_ARRAY); |
30 | 2 | Guillermo Zdanowicz | |
31 | 2 | Guillermo Zdanowicz | |
32 | 2 | Guillermo Zdanowicz | $resultSet = $q->execute(); // $resultSet is an array |
33 | 2 | Guillermo Zdanowicz | |
34 | 2 | Guillermo Zdanowicz | |
35 | 2 | Guillermo Zdanowicz | foreach ($resultSet as $post) { |
36 | 2 | Guillermo Zdanowicz | // $post is an array |
37 | 2 | Guillermo Zdanowicz | echo $post['title']; |
38 | 2 | Guillermo Zdanowicz | } |
39 | 2 | Guillermo Zdanowicz | |
40 | 2 | Guillermo Zdanowicz | --- |
41 | 2 | Guillermo Zdanowicz | |
42 | 2 | Guillermo Zdanowicz | $q = Doctrine_Query::create() |
43 | 2 | Guillermo Zdanowicz | ->from('Post p') |
44 | 2 | Guillermo Zdanowicz | ->setHydrationMode(Doctrine::HYDRATE_RECORD); // Unnecessary, HYDATE_RECORD is default method |
45 | 2 | Guillermo Zdanowicz | |
46 | 2 | Guillermo Zdanowicz | |
47 | 2 | Guillermo Zdanowicz | $resultSet = $q->execute(); // $resultSet is an Doctrine_Collection object |
48 | 2 | Guillermo Zdanowicz | |
49 | 2 | Guillermo Zdanowicz | |
50 | 2 | Guillermo Zdanowicz | foreach ($resultSet as $post) { |
51 | 2 | Guillermo Zdanowicz | // $post is an Post object |
52 | 2 | Guillermo Zdanowicz | echo $post->getTitle(); |
53 | 2 | Guillermo Zdanowicz | echo $post['title']; // Each Doctrine's Model object implements ArrayAccess interface so this is possible |
54 | 2 | Guillermo Zdanowicz | echo $post->myCustomMethod(); |
55 | 2 | Guillermo Zdanowicz | } |
56 | 3 | Guillermo Zdanowicz | |
57 | 2 | Guillermo Zdanowicz | --- |
58 | 2 | Guillermo Zdanowicz | |
59 | 2 | Guillermo Zdanowicz | $q = Doctrine_Query::create() |
60 | 2 | Guillermo Zdanowicz | ->select('p.created_at') |
61 | 2 | Guillermo Zdanowicz | ->from('Post p') |
62 | 2 | Guillermo Zdanowicz | ->where('p.id = ?', 321) |
63 | 2 | Guillermo Zdanowicz | ->setHydrationMode(Doctrine::HYDRATE_SINGULAR_SCALAR); |
64 | 2 | Guillermo Zdanowicz | |
65 | 2 | Guillermo Zdanowicz | |
66 | 2 | Guillermo Zdanowicz | $createdAt = $q->execute(); |
67 | 4 | Guillermo Zdanowicz | |
68 | 4 | Guillermo Zdanowicz | El siguiente codigo permite realizar filtros usando arreglos |
69 | 4 | Guillermo Zdanowicz | <pre> |
70 | 4 | Guillermo Zdanowicz | $q = Doctrine_Query::create() |
71 | 4 | Guillermo Zdanowicz | ->from('Menu m') |
72 | 4 | Guillermo Zdanowicz | ->andWhereIn('m.credencial', $arrCredenciales) |
73 | 4 | Guillermo Zdanowicz | ->andWhere('m.idsistema = 2 ') |
74 | 4 | Guillermo Zdanowicz | ->orderBy('m.idgrupomenu, orden'); |
75 | 4 | Guillermo Zdanowicz | |
76 | 4 | Guillermo Zdanowicz | $opcionesmenu = $q->execute(); |
77 | 4 | Guillermo Zdanowicz | $grupomenuanterior=''; |
78 | 4 | Guillermo Zdanowicz | $grupomenu=''; |
79 | 4 | Guillermo Zdanowicz | foreach ($opcionesmenu as $itemmenu) { |
80 | 4 | Guillermo Zdanowicz | } |
81 | 4 | Guillermo Zdanowicz | </pre> |