06 GET paraméterek

Default book

A Zend Framework a GWT paramétereket is átveszi az URL-ben az alábbi módon:

http://hostname/user/name/username/wiwit/gender/man

Az alábbira fordítja le:

    Controller = user
    Action = name
    username = wiwit
    gender = man

Mi a megoldást? A nameAction() függvényt egy kicsit módosítjuk. Az általános forma így néz ki:

http://hostname/controller/action/var1/value1/var2/value2/...

A UserController.php fájlt módosítjuk az application/controller könyvtárban:

<?php
require_once 'Zend/Controller/Action.php';
 
class UserController extends Zend_Controller_Action
{
   public function indexAction()
   {
     $this->view->assign('name', 'Wiwit');
     $this->view->assign('title', 'Hello');
   }
   
   public function nameAction()
   {
   
     $request = $this->getRequest();
     $this->view->assign('name', $request->getParam('username'));
     $this->view->assign('gender', $request->getParam('gender'));   
         
     $this->view->assign('title', 'User Name');
   }
}

A $request = $this->Request() elkapja a GET-tel átadott paramétereket, míg a $this->getParam('username') visszaadja

A name.phtml pedig így néz ki:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title><? echo $this->escape($this->title); ?></title>
 </head>
 
 <body>
   <h1><?=$this->escape($this->title);?>, <?=$this->escape($this->name);?></h1>
   <h2>Gender: <?=$this->escape($this->gender);?></h2>
 </body>
</html>