senäh

17senäh und so…

Zend Framework Artikelbild

Zend Framework
06. Apr 2012
Kommentare: 0

Zend Framework: View-Skript eines anderen Controllers rendern

Kategorien: Zend Framework | 06. Apr 2012 | Kommentare: 0

Oft kommt man in die Situation, dass am Ende der Action eines Controllers nicht das standardmäßige View-Skript gerendert werden soll. In den meisten Fällen ist es ein anderes Skript des gleichen Controllers.

class IndexController extends Zend_Controller_Action
{
    /**
     *  Automatically shows script 'index/index.phtml'
     *  (same controller, same action).
     */
    public function indexAction()
    {
    }

    /**
     *  Set error text and show script 'index/index.phtml'
     *  (same controller, different action).
     */
    public function invalidSessionAction()
    {
        $this->view>errorMessage = 'Ihre Session ist ausgelaufen.';
        $this->render('index');
    }
}

Gelegentlich will man aber sogar das View-Skript eines anderen Controllers rendern. Die Syntax dazu ist leicht anders.

class AdminController extends Zend_Controller_Action
{
    /**
     *  Automatically shows script 'admin/index.phtml'
     *  (same controller, same action).
     */
    public function indexAction()
    {
    }

    /**
     *  Set error text and show script 'index/index.phtml'
     *  (different controller, different action).
     */
    public function invalidSessionAction()
    {
        $this->view>errorMessage = 'Ihre Session ist ausgelaufen.';
        $this->renderScript('index/index.phtml');
    }
}

Den interessanten Teil verallgemeinert:

// different controller
$this->render('action');

// different controller and action
$this->renderScript('controller/action.phtml');

Hoffe es hilft. Schönen Tag noch 😉

Autor: Enno

Ich bin Enno. PHP ist mein Ding, aber auch alles Neue rund um die Themen HTML5, CSS3 & Co finde ich interessant. Ich mag es Leuten zu helfen und mein Wissen weiterzugeben. Sollte dir mein Beitrag gefallen haben, lass doch nen Kommentar da oder benutze einen der Social Buttons, um deinen Dank auszudrücken ;)