Запретить прямой доступ к контроллеру действий - PullRequest
2 голосов
/ 16 февраля 2012

Я работаю с Zend Framework. В представлении я использую помощник действий.

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');
}

Это хорошо работает, но я не хочу, чтобы этот контроллер / действие был напрямую доступен по URL domain.com/comment/info.

Как мне этого избежать?

Thx

1 Ответ

3 голосов
/ 16 февраля 2012

Если ваш метод действия всегда вызывается с параметром идентификатора статьи, вы можете перенаправить запрос в случае отсутствия идентификатора:

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');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...