Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZendFramework] 1 kontroler i 1 akcja dla wielu podstron
tajger90
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 11.02.2013

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
tajger90
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 11.02.2013

Ostrzeżenie: (0%)
-----


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. (IMG:style_emoticons/default/facepalmxd.gif)

Ten post edytował tajger90 2.03.2014, 21:38:50
Go to the top of the page
+Quote Post
viking
post
Post #4





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


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.

Ten post edytował viking 3.03.2014, 10:13:51
Go to the top of the page
+Quote Post
tajger90
post
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 11.02.2013

Ostrzeżenie: (0%)
-----


Dzięki, postaram się przeczytać kilka artykułów z twojej witryny na bank. (IMG:style_emoticons/default/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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 04:35