Zend Framework загружает представления без повторной загрузки шаблона макета - PullRequest
0 голосов
/ 07 февраля 2012

Мне нужно загрузить макет профиля и затем загрузить все виды профилей в этот макет без повторной загрузки макета, чтобы я мог кэшировать большой объект json в браузере клиентов, чтобы обеспечить доступность данных.в последующих представлениях без необходимости создания нового HTTP-запроса для каждого представления в контроллере моего профиля.

Можно ли загрузить шаблон макета, а затем загрузить в него представления, отключив их шаблон макета, чтобышаблон макета никогда не перезагружается, только вид в?

Просто нужно знать, возможно ли это и какой будет лучший вариант.

Заранее спасибо:)

1 Ответ

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

В представлениях, где макет не требуется, попробуйте:

$this->_helper->layout->disableLayout();

Это должно помешать отображению макета.

Если по какой-либо причине вы хотите выполнить то же действиес одного и того же контроллера, который вызывается много раз, но загрузите макет один раз (должен быть лучший способ организовать себя), но вы всегда можете попробовать:

public function indexAction()
{
    static $firstTime = true;
    if($firstTime){
        $firstTime = false;
    } else {
        $this->_helper->layout->disableLayout(); //disable layout
    }
}

Я постараюсь привести лучший пример: допустим, выесть контроллер foo с 3-мя представлениями: индекс, контакт, новости.

class Foo_Controller extends Zend_Controller
{
     //...

     public function indexAction()
     {
        //normal view layout loads
     }
     public function contactAction()
     {
        //normal view layout loads
     }
     public function newsAction()
     {
        //no layout for this
        $this->_helper->layout->disableLayout(); //disable layout
     }
}

Таким образом, представления, которым требуется макет, имеют одно.Те, которые этого не делают.Если вы не говорите макет, но на самом деле думаете о чем-то другом, то Zend_View_Helpers_Layout вам не нужно будет публиковать код, который поможет нам помочь вам!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...