[PHP/Zend framework] Zend_DB_Select

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Crazybyte
  • Registratie: Juli 2002
  • Laatst online: 15-09 10:07
Beste mensen,

Sinds kort maak ik gebruik van het Zendframework voor de opbouw van webpagina's, waar ik echter nog niet uit ben gekomen is het gebruik van Zend_DB_Select. De uitleg en werking is op zich wel helder, zolang je het toepast in de index.php, maar hoe maak ik er gebruik van binnen een controller?

Mijn code ziet er nu zo uit.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class TypesController extends Zend_Controller_Action
{
  function init()
  {
    $this->view->baseUrl = $this->_request->getBaseUrl();
    Zend_Loader::loadClass('Types');
  }
  
  function indexAction()
  {
    $this->view->title = "Types overzicht";
    $types = new Types();
    
    
    $db = $types->getAdapter();
    
    $select = new Zend_DB_Select($db);
    
    $select->from('types', '*');
    $sql = $select->__toString();
    
    $this->view->types = $db->fetchAll($sql);     
  }


En de Class Types ziet er als volgt uit:
PHP:
1
2
3
4
class Types extends Zend_Db_Table
{
  protected $_name = 'types';
}


Ik wil eigenlijk niet meer dan gewoon een query kunnen uitvoeren, maakt me op zich niet zoveel uit op welke manier het moet, maar $db wordt oorspronkelijk in index.php aangemaakt, maar in de TypesController kan ik er niet meer aan, vandaar dat ik hem op deze manier weer probeer aan te roepen, maar dat lijkt dus niet te kloppen.

Kan iemand mij een zetje in de juiste richting geven.

Acties:
  • 0 Henk 'm!

  • RAJH
  • Registratie: Augustus 2001
  • Niet online
Misschien is het mogelijk om de $db var op te slaan in Zend_Registry?

[ Voor 32% gewijzigd door RAJH op 10-10-2007 09:24 ]


Acties:
  • 0 Henk 'm!

  • Crazybyte
  • Registratie: Juli 2002
  • Laatst online: 15-09 10:07
RAJH schreef op woensdag 10 oktober 2007 @ 09:23:
Misschien is het mogelijk om de $db var op te slaan in Zend_Registry?
Ik zal er naar kijken.

Probleem is overigens opgelost, bleek dat alles wel klopte wat betreft de query. Alleen als je gewoon $types->fetchAll(); zou doen geeft ie automatisch het als object terug en dat was hier niet het geval.

Simpelweg
PHP:
1
$db->setFetchMode(Zend_Db::FETCH_OBJ);
toevoegen bleek genoeg te zijn.