« Anterior - Versión 3/5 (diferencias) - Siguiente » - Versión actual
Guillermo Zdanowicz, 14/06/2012 09:02


Query con Doctrine en Form

public function obtenerPlanillasAreaAsignadas($area) {

$q = Doctrine_Query::create()
->from('Planillas p');
$planillas_asignadas = $q->createSubquery()
->select('pa.planillas_id')
->from('PlanillasAreas pa')
->where('pa.areas_id = ?');
$q->where('p.id IN (' . $planillas_asignadas->getDql() . ')');
return $q->execute(array($area));
}

para definir como devolver resultados se tiene


$q = Doctrine_Query::create()
->from('Post p')
->setHydrationMode(Doctrine::HYDRATE_ARRAY);

$resultSet = $q->execute(); // $resultSet is an array

foreach ($resultSet as $post) {
// $post is an array
echo $post['title'];
}


$q = Doctrine_Query::create()
->from('Post p')
->setHydrationMode(Doctrine::HYDRATE_RECORD); // Unnecessary, HYDATE_RECORD is default method

$resultSet = $q->execute(); // $resultSet is an Doctrine_Collection object

foreach ($resultSet as $post) {
// $post is an Post object
echo $post->getTitle();
echo $post['title']; // Each Doctrine's Model object implements ArrayAccess interface so this is possible
echo $post->myCustomMethod();
}


$q = Doctrine_Query::create()
->select('p.created_at')
->from('Post p')
->where('p.id = ?', 321)
->setHydrationMode(Doctrine::HYDRATE_SINGULAR_SCALAR);

$createdAt = $q->execute();

Redmine Appliance - Powered by TurnKey Linux