[英]redirect different view scripts
我想重定向到不同的視圖腳本,這取決於用戶可以填寫的搜索類型。
例如:用戶想要搜索一個人,而不是我想要使用匹配的視圖腳本的人(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']);
}
在屏幕快照中,我的文件夾將顯示:
因此,在這種情況下,如何在不調用匹配控制器動作的情況下使用現有的視圖腳本?
我認為您應該在switch
提供setTemplate
完整模板路徑
$view = new ViewModel([
'ansprechpartner' => $this->ansprechpartnerTable->sucheAnsprechpartner($suche['suche']),
]);
$view->setTemplate('stammdaten/ansprechpartner/index');
return $view;
此開關應在“動作”中(在控制器中)。 這是永遠都不應忽視的邏輯。 但是,如果確實要執行此操作,則可以利用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');
//...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.