Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Akcja bez widoku
Forum PHP.pl > Forum > PHP > Frameworki
Balon
W jaki sposób zrobić akcję, która nie ma widoku, a zamiast tego z poziomu akcji printuje jakiś tekst. Potrzebne mi jest to do ajaxowego logowania - zwrócę po prostu liczbę i po sprawie i nie potrzebuję do tego żadnych templatek.

Pozdrawiam i liczę na szybką odpowiedź,
Balon.
mike
  1. <?php
  2.  
  3. // W akcji:
  4. $this->_helper->viewRenderer->setNoRender(true);
  5. // lub w dowolnym miejscu przed wykonaniem akcji
  6. Zend_Controller_Front::getInstance()->setParam('noViewRenderer', true);
  7.  
  8. ?>
phpion
Ja tworzę własny kontroler dziedziczący po Zend_Controller_Action i w nim deklaruję nową metodę blokującą renderowanie widoku:
  1. <?php
  2. protected function disableRendering() {
  3. $this->_helper->layout->disableLayout();
  4. $this->_helper->viewRenderer->setNoRender();
  5. }
  6. ?>

po czym wywołuję tą metodę w akcji:
  1. <?php
  2. class UserController extends Ntfr_Controller_Action { // Ntfr_Controller_Action to ten moj kontroler
  3. public function checkusernameAction() {
  4. $this->disableRendering();
  5.  
  6. $request = $this->getRequest();
  7. $username = $request->getParam('username');
  8.  
  9. if ($request->isXmlHttpRequest() && !is_null($username)) {
  10. $validator = new Ntf_Validate_Username();
  11. echo $validator->isValid($username) ? '1' : '0';
  12. }
  13. }
  14. }
  15. ?>

Ten konkretny przykład służy do AJAXowego sprawdzania czy dany użytkownik nie jest już zarejestrowany w systemie.
Balon
Dzięki Wam obu winksmiley.jpg Drugi przykład z pewnością mi się przyda!
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.