перенаправить различные сценарии просмотра - PullRequest
0 голосов
/ 26 марта 2019

Я хочу перенаправить в различные сценарии просмотра, в зависимости от типа поиска, который может заполнить пользователь.

Например: пользователь хочет найти человека, а я хочу использовать соответствующие сценарии просмотра для людей (ansprechpartner). Пожалуйста, посмотрите на часть моего действия контроллера:

 switch ($suche['suchtyp']) {
            case 1:            //Ansprechpartner
                $view = new ViewModel([
                   'ansprechpartner' => $this->ansprechpartnerTable->sucheAnsprechpartner($suche['suche']),
                        ]);
                $view->setTemplate('ansprechpartner/index');
                return $view;
                break;
            case 2:            //Mandant
                $view = new ViewModel([
                   'mandant' => $this->mandantTable->sucheMandant($suche['suche']),
                ]);
                $view->setTemplate('mandant/index');
                return $view;
                break;
            case 3:            //vertrag
                $view = new ViewModel([
                   'vertrag' => $this->vertragTable->sucheVertrag($suche['suche']),
                ]);
                $view->setTemplate('vertrag/index');
                return $view;
                break;

            default:
                return $this->redirect()->toRoute('index', ['action' => 'index']);
        }

На скриншоте будут показаны мои папки:

enter image description here

Так, как я могу использовать существующие сценарии представлений в этом случае, не вызывая соответствующие действия контроллера?

Ответы [ 2 ]

2 голосов
/ 27 марта 2019

Я думаю, вы должны предоставить полный путь к шаблону setTemplate, в вашем switch

    $view = new ViewModel([
                   'ansprechpartner' => $this->ansprechpartnerTable->sucheAnsprechpartner($suche['suche']),
                        ]);
   $view->setTemplate('stammdaten/ansprechpartner/index');
   return $view;
0 голосов
/ 27 марта 2019

Этот переключатель должен быть в действии (в контроллере). Это та логика, которую никогда не следует принимать во внимание Однако, если у вас есть в действии, вы можете использовать ZF для , чтобы установить другой макет

Пример по ссылке:

// A controller's action method that uses an alternative
// layout template.
public function indexAction() 
{
  //...

  // Use the Layout plugin to access the ViewModel
  // object associated with layout template.
  $this->layout()->setTemplate('layout/layout2');

  //...
}
...