Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] 1 kontroler i 1 akcja dla wielu podstron
Forum PHP.pl > Forum > PHP > Frameworki
tajger90
Witam wszystkich!
Dopiero co zacząłem uczyć się tego frameworka. Poznałem zasady działania MVC w Zendzie, oraz połączenia z bazą danych oraz proste wybieranie danych z bazyza pomocą metody fetchAll().
Mam pytanie dotycząće wyświetlania kontrolerów i akcji z bazydanych.
Otóż mamy 3 kontrolery i ich 8 akcji (razem):
azja/chiny
azja/japonia
azja/tajlandia
europa/polska
europa/niemcy
europa/ukraina
afryka/egipt

Czy muszę tworzyć wszystkie akcje i w każdej z nich wybierać dane i przekazywac je do widoku? Zawsze zapytanie praktycznie bede mial takie same wiec nie da sie jakos obejsc i stworzyc jedną akcję w której będziemy tylko zmieniac pseudokod SQL dotycząćy danego kraju lub kontrolera?
W tym przypadku fajnie bybylo mieć jakos 1 kontroler i 1 akcję. Wiem moze wariat jestem ale zaczynam tą naukę i we wcześniejszym projekcie ktory robilem OOP bez żadnego fw mialem 1 strone np. page.php gdzie zawsze miałem przekazany argument, zmienną ktora byla dodawana jaki to ma byc rekord z bazdy danych. I tak mi się potem wyswietlała strona.
viking
kraje/pokaz/:kontynent/:kraj

  1. Zend_Debug::dump($this->getParams());


http://framework.zend.com/manual/1.12/en/z...routes.standard

W sumie nie napisałeś która wersja Zenda.
tajger90
Cytat(viking @ 2.03.2014, 20:56:57 ) *
kraje/pokaz/:kontynent/:kraj

  1. Zend_Debug::dump($this->getParams());


http://framework.zend.com/manual/1.12/en/z...routes.standard

W sumie nie napisałeś która wersja Zenda.


Wersja zenda 1.12.3

Czy w .htaccessie będę musiał jakieś reguły dodawać także? Póki co ten link z routingiem co mi podesłałeś to nie umiałem wcześniej i z tego co przeczytałem średnio mi to idzie. Dokumentacji wogóle prawie nie czytałem zenda 1.12.3 tylko książkę GAJDY do 170 strony. Pojęcie routingu takjakby znam i translację adresów w plikach .php i application.ini. Chyba muszę zacząć czytać dokumentację od początku. facepalmxd.gif
viking
Daj sobie spokój z jakimiś książkami które zazwyczaj są ograniczonym przedrukiem dokumentacji. Jeżeli korzystasz z Zend_Application możesz dodać routing do pliku .ini

  1. resources.router.routes.kraje.route = "/kraje/pokaz/:kontynent/:kraj"
  2. resources.router.routes.kraje.defaults.module = "Default"
  3. resources.router.routes.kraje.defaults.controller = "country"
  4. resources.router.routes.kraje.defaults.action = "show"
  5. resources.router.routes.kraje.defaults.kontynent = "Europa" ;domyślne jeżeli kontynent nie podany
  6. resources.router.routes.kraje.reqs.kontynent = "[a-zA-Z]"
  7. resources.router.routes.kraje.defaults.kraj = "Polska"
  8. resources.router.routes.kraje.reqs.kraj = "[a-zA-Z]"


Teraz pod
  1. $this->getParam('kontynent');
  2. // albo
  3. $this->getRequest()->getParam('kontynent');
  4. //domyślnie Europa

Będziesz miał wartość. Możesz też definiować domyślną w kontrolerze:
$kontynent = $this->getRequest()->getParam('kontynent', 'Europa');

Do bazy (w mapperze) możesz dodać jakieś metody w stylu fetchAllByCountry(), fetchAllByContinent() albo zdać się na magię (Zend_Db potrafił to przekształcić to na kolumny). Tak w skrócie.

Aha. Do .htaccess nie musisz dodawać. Będą działać adresy http://localhost/index.php/kraje/pokaz... Zobacz mój artykuł ze stopki o podstawach Zenda.
tajger90
Dzięki, postaram się przeczytać kilka artykułów z twojej witryny na bank. Lkingsmiley.png
Dzięki za szybką pomoc, ja biorę się do roboty tj. czytania dokumentacji od początku i na pewno niedługo pojawią się na forum pytania dotyczące Zenda i jego konfiguracji już niedługo w moim wykonaniu.
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.