Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] Routing w jakim pliku.
Forum PHP.pl > Forum > PHP > Frameworki
istrd
Witam,
Czytam o Routingu w manualu Zenda ale trochę nie ogarniam, co z czym i gdzie. Mógł by mi ktoś wytłumaczyć po kolei co robić?

Najpierw tworze plik .htaccess z zawartością
  1. RewriteEngine On
  2. RewriteCond %{REQUEST_FILENAME} -s [OR]
  3. RewriteCond %{REQUEST_FILENAME} -l [OR]
  4. RewriteCond %{REQUEST_FILENAME} -d
  5. RewriteRule ^.*$ - [NC,L]
  6. RewriteRule ^.*$ index.php [NC,L]
?
Dalej co? Chcę zrobić sobie routing np. dla /Index/Index lub do Index/Post/id/7 gdzie i co ma umieścić żeby routing działał. Z góry dziękuje o objaśnienie tego problemu.
Pozdro
skowron-line
Route to zupełnie inna bajka, nie ma nic wspólnego z mod_rewrite
http://framework.zend.com/manual/en/zend.c...ler.router.html
a dla przykładu.

Kod
routes.messageEdit.route = "index/:id/"
routes.messageEdit.defaults.controller = index
routes.messageEdit.defaults.action = edit
routes.messageEdit.reqs.id = "([0-9]+)"


i bootstrap

  1. public function _initRoute()
  2. {
  3. $this->bootstrap('frontcontroller');
  4. $router = $this->getResource('frontcontroller')->getRouter();
  5. $router->addConfig(new Zend_Config_Ini(APPLICATION_PATH . '/configs/route.ini'), 'routes');
  6. }
amii
W skrócie routing przepisuje Ci adresy na kontrolery i akcje, czyli możesz sobie tworzyć dowolne adresy np. takie:
domena.pl/alkomat.html
domena.pl/filtr.html
domena.pl/alkomat/44

routes.alkomat.route = "alkomat.html"
routes.alkomat.defaults.controller = "index"
routes.alkomat.defaults.action = "alkomat"

routes.filtr.route = "filtr.html"
routes.filtr.defaults.controller = "index"
routes.filtr.defaults.action = "filtr"

routes.alkomat_id = "Zend_Controller_Router_Route_Regex"
routes.alkomat_id.route = "alkomat/:id"
routes.alkomat_id.defaults.controller = "index"
routes.alkomat_id.defaults.action = "alkomatid"
routes.alkomat_id.reverse = "alkomat/%d"
routes.alkomat_id.map.1 = "id"

W akcji alkomatid odczytujesz sobie np. id i pobierasz odpowiedni rekord z bazy.

W kontrolerze przekazujesz dane z bazy do widoku (wcześniej tworzysz model do operowania na tabeli w bazie danych zf create db-table alkomaty Alkomaty):
$table = new Alkomaty();
$this->view->alkomaty = $table->fetchAll();


Linki do akcji w widoku generujesz w ten sposób (klucze w tablicach odpowiadają nazwą kolumn w bazie danych):
<a href="<?php echo $this->url(array('id' => $alkomaty['id']), 'alkomatid') ?>"><? echo $alkomaty['nazwa'] ?></a>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.