我有主(父)控制器,其功能是验证用户权限 继承的控制器可以轻松访问它。 但是重定向存在问题。 我知道继承控制器的动作必须返回响应,但是可以在父控制器中强制重定向吗? p>
父控制器 p>
&lt ;?php
namespace应用程序;
use Zend \ Mvc \ Controller \ AbstractActionController;
class CoreController扩展AbstractActionController {
公共函数checkAccess($ moduleName,$ accessName){
if($ this - > getAclService() - > isAllowed($ moduleName,$ accessName)){
self :: redirect() - > toRoute('access-denied');
}
}
}
code> pre>
继承的控制器
p>
命名空间Application \ Controller;
use Application \ CoreController;
use Zend \ View \ Model \ ViewModel;
class InterfaceController扩展了CoreController {
公共函数indexAction(){
$ this-> checkAccess('Foo','Bar');
返回new ViewModel([
]);
}
}
code> pre>
TL; DR如果我打电话给 $ this-> checkAccess(' Foo','Bar'); code> in CoreController code>中的ode> InterfaceController code>和 $ this-> getAclService() - > isAllowed($ moduleName,$ accessName) code>返回 false code>我想立即将用户重定向到路由'access-denied' code>而不完成其余的 InterfaceController :: indexAction code> p>
重要提示: 我想避免检查 checkAccess code>返回的内容,我只是强制重定向。 p>
提前感谢您的回复。 p>
div>