2016-02-27 1 views
2

Я следую this official tutorial, чтобы узнать версия каркаса 2.0.9.Phalcon PHP диспетчер вперед не работает

У меня есть voteAction из PollController следующий код должен перенаправить или вперед к showAction после приращения number_votes следующим образом:

public function voteAction($optionId) 
{ 
    $option = PollOptions::findFirstById($optionId); 
    $option->number_votes++; 
    $option->save(); 
    return $this->dispatcher->forward([     
     'action' => 'show', 
     'params' => [$option->poll_id] 
    ]); 
} 

Однако после голосования у меня poll/vote/xx не poll/show/yy, где хх опцией id и yy является опрос соответственно.

Я попытался добавить 'controller' => 'poll' и заменить определение [] на array(), но ничего. Однако, когда я использую недействительный или не нашли имя действия для ключа action, таких как showAction или blah возвращает следующее сообщение об ошибке:

Action 'showAcyoimn' was not found on handler 'poll' 
#0 [internal function]: Phalcon\Mvc\Dispatcher->_throwDispatchException('Action 'showAcy...', 5) 
#1 [internal function]: Phalcon\Dispatcher->dispatch() 
#2 C:\xampp\htdocs\blog\public\index.php(29): Phalcon\Mvc\Application->handle() 
#3 {main} 

ответ

6

вперед не делает HTTP редирект. Более подробная информация здесь: https://docs.phalconphp.com/en/latest/reference/dispatching.html#forwarding-to-other-actions

Если вы хотите перенаправить к другому использованию URL:

return $this->response->redirect(array(
    "controller" => "index", 
    "action" => "actionName", 
    "params" => "paramValues" 
)); 

Например вперед полезно показать страницу 404.