Вызов Представления из другого Представления - PullRequest
4 голосов
/ 13 февраля 2012

У меня есть login.phtml view , который хотел бы указать общий путь и получить к нему доступ любым модулем через приложение.

Для боковых панелей, отображаемых $this->render('common/sidebar.phtnl') itработает, так как мой макет является единым для всех модулей.

Но когда дело доходит до контента $this->layout()->content, если я добавлю помощника в представление результатов, как $this->login() Zend продолжает искать его в модулепуть к сценариям.

Каким образом можно сделать так, чтобы мое представление содержимого отображало другое общее представление через помощника, даже если мой поток является результатом модуля?

Ответы [ 2 ]

1 голос
/ 13 февраля 2012

Это похоже на хорошую работу для пользовательского помощника вида .Написание собственного очень просто, и как только вы попробуете его, вы не сможете остановиться!

Ваш пользовательский помощник по просмотру должен зайти в apps / views / helpers / NameOfHelper.php и должен иметь публичный методназывается nameOfHelper ().Я буду использовать логин в качестве примера, так как это ваш вариант использования в этом случае.

Сначала создайте приложения / views / helpers / Login.php: -

class Zend_View_Helper_Login extends Zend_View_Helper_Abstract
{
    public function login()
    {
        return "Logging in!";
    }
}

Затем в представленииили раскладку просто сделайте: -

echo $this->login();

и получите вывод: -

Вход в систему!

Не может быть проще!

В качестве альтернативы, если вы хотите использовать скрипт вида, вы можете сделать это в вашем методе login (): -

class Zend_View_Helper_Login extends Zend_View_Helper_Abstract
{
    public function login()
    {
        $this->view->exampleVar = 'example value';
        return $this->view->render('login.phtml')
    }
}

Затем, когда вы сделаете echo $this->login() в вашем представлении или макете, вы увидитевывод, который вы хотите.

Очевидно, вы можете поместить любой код в метод login ().

0 голосов
/ 17 декабря 2013

Из скрипта вида вы можете:

<?php echo  $this->render("menus/recetas.phtml"); ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...