GcDevelopment\Controller\LayoutController::editAction PHP Метод

editAction() публичный Метод

Edit layout
public editAction ( ) : Zend\View\Model\ViewModel
Результат Zend\View\Model\ViewModel
    public function editAction()
    {
        $layoutId = $this->getRouteMatch()->getParam('id', null);
        $layoutModel = Layout\Model::fromId($layoutId);
        if (empty($layoutId) or empty($layoutModel)) {
            return $this->redirect()->toRoute('development/layout');
        }
        $layoutForm = new LayoutForm();
        $layoutForm->setAttribute('action', $this->url()->fromRoute('development/layout/edit', array('id' => $layoutId)));
        $layoutForm->loadValues($layoutModel);
        if ($this->getRequest()->isPost()) {
            $data = $this->getRequest()->getPost()->toArray();
            $layoutForm->setData($data);
            if (!$layoutForm->isValid()) {
                $this->flashMessenger()->addErrorMessage('Can not save layout');
                $this->useFlashMessenger();
            } else {
                $layoutModel->setName($layoutForm->getValue('name'));
                $layoutModel->setIdentifier($layoutForm->getValue('identifier'));
                $layoutModel->setDescription($layoutForm->getValue('description'));
                $layoutModel->setContent($layoutForm->getValue('content'));
                $layoutModel->save();
                $this->flashMessenger()->addSuccessMessage('This layout has been saved');
                return $this->redirect()->toRoute('development/layout/edit', array('id' => $layoutId));
            }
        }
        return array('form' => $layoutForm, 'layoutId' => $layoutId);
    }