public function postVerify(View $subject)
 {
     $fields = [];
     $request = $subject->getParams()->getController()->getRequest();
     if ($request->isPost()) {
         $_rows = $subject->getParams()->fromPost('row');
         if (is_array($_rows)) {
             foreach ($_rows as $_k => $_row) {
                 if (!empty($_row['visible']) && $_row['visible'] == 1) {
                     $fields[] = $_k;
                 }
             }
             if (count($fields)) {
                 $this->viewViewConfig->fields = $fields;
                 $subject->getConfigServiceVerify()->saveByObject($this->viewViewConfig);
             }
         }
         //            $url = $subject->getBackUrl();
         $url = $subject->getSaUrlBack($subject->getParams()->fromQuery('back'));
         parse_str(parse_url($url)['query'], $output);
         $url = $subject->getSaUrlBack($output['back']);
         if ($url == null || $url == '/') {
             $data = strtolower($this->viewViewConfig->document);
             $action = 'index';
             $mode = $this->viewViewConfig->mode;
             $url = $subject->getParams()->getController()->url()->fromRoute('common', ['action' => $action, 'data' => $data, 'mode' => $mode]);
         }
         $subject->setRedirect($subject->refresh('FieldConfig was successfully saved', $url));
         return;
     }
 }
 /**
  * @param string $viewName
  *
  * @return View|ViewInterface
  * @throws \Exception
  */
 protected function createView($viewName)
 {
     $view = new View();
     $view->setName($viewName);
     $view->setAuthService($this->getAuthServiceVerify());
     $view->setAclService($this->getAclServiceVerify());
     $view->setLogicService($this->getLogicServiceVerify());
     $view->setConfigService($this->getConfigServiceVerify());
     $viewConfig = $this->getConfigServiceVerify()->getByObject($view->getName(), new ViewConfig());
     if ($viewConfig == null) {
         throw new \Exception('Please fill ViewConfig for the ' . $view->getName() . '. I can\'t work on');
     }
     $view->setViewConfig($viewConfig);
     $view->setModelService($this->getModelServiceVerify());
     // info about model - how it is organized. it will be useful
     $parsedModelConfig = $this->getModelServiceVerify()->getParsedModelConfig($viewConfig->model);
     $view->setParsedModelConfig($parsedModelConfig);
     // model view should deal with acl enabled model
     $aclModel = $this->getAclServiceVerify()->getAclDataModel($viewConfig->model);
     // primary gateway for data ops
     $gateway = $this->getGatewayServiceVerify()->get($viewConfig->model, $aclModel);
     $view->setGateway($gateway);
     $view->setGatewayService($this->getGatewayServiceVerify());
     $view->setFormService($this->getFormServiceVerify());
     $view->setConfigService($this->getConfigServiceVerify());
     $view->setQueryService($this->getQueryServiceVerify());
     $view->setFileService($this->getFileServiceVerify());
     $view->setFilesystemService($this->getFilesystemServiceVerify());
     $view->setPDFService($this->getPDFServiceVerify());
     $view->setTwigService($this->getTwigServiceVerify());
     $view->setListParamsService($this->getListParamsServiceVerify());
     $view->init();
     return $view;
 }