本文以 message 表(id, title, content)為例,示範 Zend Framework 專案中資料庫連線設定、Model 定義、前端控制器整合與視圖渲染的完整 MVC 流程。
Zend_Db_Table,設定 $_name、$_primary。index(列表)、add(新增)、edit(修改)、del(刪除)四個 Action。index.phtml、add.phtml、edit.phtml 視圖模板。$config = new Zend_Config_Ini('./application/config/config.ini', null, true);
Zend_Registry::set('config', $config);
$dbAdapter = Zend_Db::factory($config->general->db->adapter, $config->general->db->config->toArray());
$dbAdapter->query('SET NAMES UTF8');
Zend_Db_Table::setDefaultAdapter($dbAdapter);
Zend_Registry::set('dbAdapter', $dbAdapter);
// 新增
public function addAction() {
if (strtolower($_SERVER['REQUEST_METHOD']) == 'post') {
$filter = new Zend_Filter_StripTags();
$data = array(
'title' => $filter->filter($this->_request->getPost('title')),
'content' => $filter->filter($this->_request->getPost('content'))
);
$message = new Message();
$message->insert($data);
echo '新增成功!<a href="'. $this->view->baseUrl .'/index/index/">返回</a>';
} else {
echo $this->view->render('add.phtml');
}
}
// 修改、刪除邏輯類似,使用 $table->update($set, $where) 與 $table->delete($where)
此範例展示了 Zend Framework 1.x 時代經典的 MVC 實作模式,雖然版本較舊,但架構思想仍具參考價值。