我正在使用zend框架。在视图中,我使用动作助手。
echo $this->action('info', 'comment', null, array('articleID' => $article->arti_id));
因此,帮助者调用'CommentController'类和方法'infoAction'。在我的方法中,我得到'articleID'参数,然后我开始使用模型进行处理。最后,我渲染了一个共享视图。
public function infoAction() {
$articleID = $this->getRequest()->getParam('articleID');
// Working with model
// .....
$this->renderScript('/View/Script/DefaultComment.phtml');
}
它工作得很好,但我不希望网址domain.com/comment/info
直接访问此控制器/操作。
我该如何避免这种情况?
THX
答案 0 :(得分:3)
如果您的操作方法始终使用文章ID参数调用,那么您可以重定向请求,以防没有ID:
public function infoAction() {
if ($this->_hasParam('articleID')) {
$articleID = $this->getRequest()->getParam('articleID');
// Working with model
// .....
$this->renderScript('/View/Script/DefaultComment.phtml');
} else {
$this->_helper->redirector('index', 'index', 'default');
}
}