我在我的 symfony 应用程序中实现了一个向导式的进程。它还有用于“返回”和“下一步”的附加按钮,并且我控制在提交每个表单后将用户定向到哪些页面。
我想要一些关于一旦用户处于向导模式后如何锁定路线的建议,即如果处于向导模式,他们只能访问向导过程中使用的 5 个页面。如果他们在向导模式下尝试导航到其他路线,它会重定向回向导所在的最后一个已知路线。
如果在向导模式下,我可以进入每个操作并添加重定向,但这似乎是错误的方法。
我在我的 symfony 应用程序中实现了一个向导式的进程。它还有用于“返回”和“下一步”的附加按钮,并且我控制在提交每个表单后将用户定向到哪些页面。
我想要一些关于一旦用户处于向导模式后如何锁定路线的建议,即如果处于向导模式,他们只能访问向导过程中使用的 5 个页面。如果他们在向导模式下尝试导航到其他路线,它会重定向回向导所在的最后一个已知路线。
如果在向导模式下,我可以进入每个操作并添加重定向,但这似乎是错误的方法。
Symfony 过滤器在这里是一个不错的选择。
将 myWizardFilter.class.php 放入您的应用程序库文件夹中:
class myWizardFilter extends sfFilter {
public function execute ($filterChain) {
if ($this->isFirstCall() && $wizardMode && $outsideWizard) {
$controller = $this->getContext()->getController();
$controller->forward('wizardModule', 'wizardAction');
throw new sfStopException();
}
$filterChain->execute();
}
}
$wizardMode
用您检查的任何内容进行替换,以查看用户是否处于向导模式。$outsideWizard
。否则,您将获得重定向循环。然后将过滤器添加到您的 filters.yml:
wizard:
class: myWizardFilter