Query con Doctrine en Form

Versión 3 (Guillermo Zdanowicz, 14/06/2012 09:02)

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(); 
Redmine Appliance - Powered by TurnKey Linux