簡単なアプリケーションを作成し、ZF に慣れるには、データベース テーブルをデータベース アダプタに結び付ける DbTable モデルを使用することから始めます。これはベスト プラクティスではありませんが、簡単に始めることができます。
Zend_Tool cli を使用すると、コマンドはこの形式
zf create db-table name actual-table-name module force-overwrite
になり、次の
ように変換されます。
zf create db-table Users users
db これによりUsers.php
atという名前のファイルが作成され、次の/application/models/DbTable/
ようになります。
<?php
class Application_Model_DbTable_Users extends Zend_Db_Table_Abstract
{
protected $_name = 'users'; //name of table, does not have to match name of class
}
これをコントローラーで使用するのfetchAll
は、次のように簡単です。
<?php
class IndexController extends Zend_Controller_Action {
public function indexAction(){
$db = new Application_Model_DbTable_Users();//instantiate model
$result = $db->fetchAll();//perform query, see Zend_Db_Table_Abstract for API
$this->view->users = $result;//send to view
}
}
この小さなクラスを作成するだけで、選択したデータベース アダプタの機能にアクセスできます。アクセスのニーズをカスタマイズするために、DbTable モデルでメソッドを構築することもできます。
<?php
class Application_Model_DbTable_Users extends Zend_Db_Table_Abstract
{
protected $_name = 'users'; //name of table, does not have to match name of class
public function getUser($id) {
$select = $this->select();//see Zend_Db_Select for info, provides more secure interface for building queries.
$select->where('id = ?', $id);//can be chained
$result = $this->fetchRow($select);//returns a row object, if array is needed use ->toArray()
return $result;
}
}
このメソッドは、fetchAll() メソッドと同様の方法で使用されます。
<?php
class IndexController extends Zend_Controller_Action {
public function indexAction(){
$id = $this->getRequest()->getParam('id');//assumes the id is set somehow and posted
$db = new Application_Model_DbTable_Users();//instantiate model
$result = $db->getUser($id);//perform query, see Zend_Db_Table_Abstract for API
//$this->view->user = $result;//send to view as object
$this->view->user = $result->toArray();//send to view as an array
}
}
これで始められることを願っています。マニュアルを読むことを忘れないでください