application/controllers/"UserController.PHP" . A következő lesz a metódus:
public function listAction(){$params = array('host' =>'localhost','username' =>'root','password' =>'admin','dbname' =>'zend');$DB = new Zend_Db_Adapter_Pdo_Mysql($params);$DB->setFetchMode(Zend_Db::FETCH_OBJ);$sql = "SELECT * FROM `user` ORDER BY user_name ASC";$result = $DB->fetchAssoc($sql);$this->view->assign('title','Member List');$this->view->assign('description','Below, our members:');$this->view->assign('datas',$result);}
application/views/scripts/user/list.phtml" lesz a hozzá tartozó View
<? include "header.phtml"; ?><h1><?=$this->escape($this->title);?></h1><h2><?=$this->escape($this->description);?></h2><a href="register">Register</a><table border="1"><tr><th>ID</th><th>User Name</th><th>First Name</th><th>Last Name</th><th>Action</th></tr><? $datas = $this->datas;for($i = 1; $i<= count($datas);$i++){ ?><tr><td><?=$datas[$i]['id']?></td><td><?=$datas[$i]['user_name']?></td><td><?=$datas[$i]['first_name']?></td><td><?=$datas[$i]['last_name']?></td><td><a href="edit/id/<?=$datas[$i]['id']?>">Edit</a>|<a href="del/id/<?=$datas[$i]['id']?>">Delete</a></td></tr><? } ?></table><? include "footer.phtml"; ?>
Itt nézhetjük meg a listát http://hostname/user/list
A fenti phtml listában látjhatjuk azt, hogyan lehet egy adott rekordot meghívni a link segítségével: (Edit és Delete bejegyzés)
Bővítsük a UserController.php fájlt az editAction() metódussal.
public function editAction(){$params = array('host' =>'localhost','username' =>'root','password' =>'admin','dbname' =>'zend');$DB = new Zend_Db_Adapter_Pdo_Mysql($params);$request = $this->getRequest();$id = $request->getParam("id");$sql = "SELECT * FROM `user` WHERE id='".$id."'";$result = $DB->fetchRow($sql);$this->view->assign('data',$result);$this->view->assign('action', $request->getBaseURL()."/user/processedit");$this->view->assign('title','Member Editing');$this->view->assign('label_fname','First Name');$this->view->assign('label_lname','Last Name');$this->view->assign('label_uname','User Name');$this->view->assign('label_pass','Password');$this->view->assign('label_submit','Edit');$this->view->assign('description','Please update this form completely:');}
Hozzuk létre a hozzá tartozó script fájlt.
<? include "header.phtml"; ?>
<h1><?=$this->escape($this->title);?></h1>
<div id="description">
<?=$this->escape($this->description);?>
</div>
<form name="edit" method="post" action="<?=$this->escape($this->action)?>">
<input type="hidden" name="id" value="<?=$this->data['id']?>">
<table>
<tr>
<td><?=$this->escape($this->label_fname)?></td>
<td><input type="text" name="first_name" value="<?=$this->data['first_name']?>"></td>
</tr>
<tr>
<td><?=$this->escape($this->label_lname)?></td>
<td><input type="text" name="last_name" value="<?=$this->data['last_name']?>"></td>
</tr>
<tr>
<td><?=$this->escape($this->label_uname)?></td>
<td><input type="text" name="user_name" value="<?=$this->data['user_name']?>"></td>
</tr>
</table>
<input type="submit" name="submit" value="<?=$this->escape($this->label_submit);?>">
</form>
<? include "footer.phtml"; ?>
A következőekben hozzuk létre a hozzá tartozó frissítő metódust is. Használhatnánk a hagymományos SQL utasítást is, összerakva az SQL sztringet, ami létrehozza a megfelelő adatokat, de itt most inkább aZend által biztosított lehetőséget nézzük:
public function processeditAction()
{
$params = array(
'host' =>'localhost',
'username' =>'root',
'password' =>'admin',
'dbname' =>'zend'
);
$DB = new Zend_Db_Adapter_Pdo_Mysql($params);
$request = $this->getRequest();
$data = array(
'first_name' => $request->getParam('first_name'),
'last_name' => $request->getParam('last_name'),
'user_name' => $request->getParam('user_name'),
'password' => md5($request->getParam('password'))
);
$DB->update('user', $data,'id = '.$request->getParam('id'));
$this->view->assign('title','Editing Process');
$this->view->assign('description','Editing succes');
}
Az adatok törlése a szokott módon folytatódhatna és folytatódna is. ha hagynánk, de használjuk inkább a Zend Framework módját: Készítsük el a delAction() függvényt a UserController.php-ban
public function delAction()
{
$params = array(
'host' =>'localhost',
'username' =>'root',
'password' =>'admin',
' dbname' =>'zend'
);
$DB = new Zend_Db_Adapter_Pdo_Mysql($params);
$request = $this->getRequest();
$DB->delete('user', 'id = '.$request->getParam('id')); //Ez a sor tölri a megadott id-jű sort a táblából
$this->view->assign('title','Delete Data');
$this->view->assign('description','Deleting succes');
$this->view->assign('list',$request->getBaseURL()."/user/list");
}
A következő oldalon összegezzük a UserController.php tartalmát.