页面上的独立块

时间:2013-07-22 20:24:25

标签: zend-framework2

首先,对不起,如果我的问题有点过于笼统而且过于含糊。我正在寻找正确的答案 - 但也许我不知道如何搜索。

我希望能够在页面独立的“块”上放置 - 这将像控制器中的普通操作一样。因此,例如,将设置它们将完全支持它。

我知道,当然,在ViewModel中放置了VieModel - 但它并没有解决整个问题。

我目前有一个像下面粘贴的代码。但是,例如在验证错误的情况下,结果显示在单独的页面上

目前我写了以下代码:

<?php
class SettingsController extends AbstractActionController
{
    public function changeNameAction() {
        $changeNameView = new ViewModel();
        $form = new ChangeNameForm();
        $form->init();
        $form->setAttribute('action',$this->url()->fromRoute('settings/changeName'));
        if ($this->request->isPost()) {
            $form->setData($this->request->getPost());
            if ($form->isValid()) {
                    return $this->redirect()->toRoute('settings');
                }
            }
        }
        $changeNameView->setVariable('form',$form);
        $changeNameView->setTemplate('settings/changeName');
        return $changeNameView;
    }

    public function changeDomainAction() {
        $changeDomainView = new ViewModel();
        $form = new ChangeDomainForm();
        $form->setServiceLocator($this->getServiceLocator());
        $form->init();
        $form->setAttribute('action',$this->url()->fromRoute('settings/changeDomain'));

        if ($this->request->isPost()) {
            $form->setData($this->request->getPost());
            if ($form->isValid()) {
                    return $this->redirect()->toRoute('settings');
                }
            }
        }
        $changeDomainView->setVariable('form',$form);
        $changeDomainView->setTemplate('settings/changeDomain');
        return $changeDomainView;
    }

    public function settingsAction() {

        $view = new ViewModel();
        $view->addChild($this->changeNameAction(), 'changeName');
        $view->addChild($this->changeLogoAction(), 'changeLogo');
        return $view;
    }
}

当然我有3个文件视图(settings.phtml,changeLogo.phtml,changeName.phtml)

settings.phtml

<?= $changeName ?>
<?= $changeLogo ?>

changeName.phtml

<?= $this->form()->render($form); ?>

0 个答案:

没有答案