Query con Doctrine en Form
Versión 2 (Guillermo Zdanowicz, 14/06/2012 09:01) → Versión 3/5 (Guillermo Zdanowicz, 14/06/2012 09:02)
h1. 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();
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();