lut 05

Domyślnie budowa linku w Zend Framework jest mniej więcej taka. Najpierw pobierana jest nazwa kontrolera a potem nazwa akcji a na końcu przekazane są parametry wraz z ich wartościami.

Przyjmijmy że projekt nazywa się nauka_zend i mamy odpalony go na localhost, nazwa kontrolera to standardowo index a akcja którą chcemy wywołać nosi nazwę kontakt, parametry które przekażemy to numer kontaktu (nr) z wartością np. 5 :)

http://localhost/nauka_zend/index/kontakt/nr/5

Aby to zadziałało to w głównym kontrolerze aplikacji musi znajdować się metoda kontaktAction, oraz musi być utworzony plik application/views/scripts/index/kontakt.phtml, plik ten zostanie wczytany do wnętrza wcześniej utworzonego layout’u. Powyższy link można wywołać też w taki sposób

http://localhost/nauka_zend/index/kontakt?nr=5

Zachowanie i sposób dostępu do parametrów nie ulegną zmianie. Przykładowy plik kontrolera może wyglądać następująco (pomijam metodę indexAction):

class IndexController extends Zend_Controller_Action
{
    public function kontaktAction()
    {
		$this->view->nr = $this->_getParam("nr");
    }
}

Jeśli zapomnimy utworzyć pliku, bądź metody w kontrolerze, lub użytkownik wywoła nieistniejącą akcję to zostanie zwrócony błąd. Jeśli natomiast nasza akcja nazywa się przykładowo kontakt-dzial-techniczny to nazwa metody w kontrolerze powinna być pozbawiona kresek czyli tak: kontaktDzialTechnicznyAction();

Autor siema \\ tagi: , , , , ,



5 Odpowiedzi do “Kontrolery akcje i dostęp do parametrów”

  1. Paweł napisał(a):

    a w ktorym miejscu na serwerze zmienic zeby od razu ladowal plik index.php po wejsciu na http://localhost/nauka_zend/ a nie http://localhost/nauka_zend/public/

  2. siema napisał(a):

    Zajrzyj do działu “Pierwsze uruchomienie projektu”

  3. karwan napisał(a):

    najlepiej zrobic vhosta, awentualnie zmiany w .htaccess

  4. cvbx napisał(a):

    główny kontroler to index.php?
    kotaktAction ma być w nim czy kontakt.phtml?

  5. cvbx napisał(a):

    ok, już wszystko jasne, nie doczytałem uważnie