重定向不同的视图脚本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重定向不同的视图脚本相关的知识,希望对你有一定的参考价值。
我想重定向到不同的viewscripts取决于用户可以填写的searchtype。
例如:用户想要搜索一个人,而不是我想使用人的匹配视图(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']);
}
在屏幕截图中,我的文件夹将显示:
那么在这种情况下如何使用现有的viewscripts而不调用匹配的控制器动作呢?
答案
我认为你应该在你的setTemplate
中提供switch
的完整模板路径
$view = new ViewModel([
'ansprechpartner' => $this->ansprechpartnerTable->sucheAnsprechpartner($suche['suche']),
]);
$view->setTemplate('stammdaten/ansprechpartner/index');
return $view;
另一答案
此开关应位于Action(在Controller中)。这是那种永远不应该被看到的逻辑。但是,如果您确实在动作中使用了它,则可以将ZF用于set a different layout
链接示例:
// 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');
//...
}
以上是关于重定向不同的视图脚本的主要内容,如果未能解决你的问题,请参考以下文章
当表单操作设置为“。”时,Django 重定向到不同的视图。