/www/
<html>
<head>
<title>ゲストブック - 一覧</title>
</head>
<body>
<p><a href="../post/">ゲストブックに記入する</a></p>
<?php if (empty($this->rows)): ?>
<p>ゲストブックが空です。</p>
<?php else: ?>
<table>
<?php foreach ($this->rows as $row): ?>
<tr>
<td>
日時: <?php echo htmlentities($row['date_created']) ?><br />
件名:<?php echo htmlentities($row['title']) ?> <br />
メッセージ: <?php echo htmlentities($row['content']) ?><br />
</td>
</tr>
<?php endforeach; ?>
</table>
<?php endif; ?>
</body>
</html>
$thisとはviewオブジェクトのことです。listコントローラのlistアクションで
$this->view->rows = $rows;
として代入された$rowsが$this->rowsとして利用できます。
ビューを定義後にアクセスすると次のようなページが表示されます。
Postコントローラとビュー
Postコントローラとビューについては,
/www/
<?php
class PostController extends Zend_Controller_Action
{
public function init()
{
/* Initialize action controller here */
$this->db = Zend_Db::factory('Pdo_Pgsql', array(
'host' => 'localhost',
'username' => 'postgres',
'password' => 'postgresql',
'dbname' => 'guestbook'
));
date_default_timezone_set('Asia/Tokyo');
}
public function indexAction()
{
/* Default action for action controller */
$this->_forward('post');
}
public function postAction()
{
if (!$this->getRequest()->isPost()) {
$this->_forward('edit');
} else {
$date = date('Y-m-d H:i:s');
$db = $this->db;
// データを保存する
$sql = "INSERT INTO guestbook (title, content, date_created) VALUES (".$db->quote($_POST['title']).", ".$db->quote($_POST['content']).", ".$db->quote($date).");";
$db->query($sql);
}
}
public function editAction()
{
}
}
目に付くのはdate_
PHP 5.
このコントローラはフォームから送信されたデータを受信するので,
if (!$this->getRequest()->isPost()) {
$this->_forward('edit');
} else {
フォームが送信されていない場合は,
フォームがポストされた場合は,
/www/
<html>
<head>
<title>ゲストブック - 書き込み</title>
</head>
<body>
<div>
<form id="guestbook" action="<?php echo $this->url() ?>" method="post">
<div>
件名: <input type="text" name="title" id="title" /><br />
</div>
<div>
メッセージ:<textarea name="content" id="content"></textarea><br />
</div>
<div>
<input type="submit" name="送信" id="submit_btn" />
</body>
</html>
edit.