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.