Zend Framework 2重定向无法正常工作

时间:2013-11-18 14:02:03

标签: redirect zend-framework2

我有一个问题,ZF2没有从我的控制器重定向。当我调用url xyz.dev/event时,它会重定向到我的主页(“/”),如路由中所定义。当我调用xyz.dev/event/1(现在设置了id)时,它也应该重定向到home,这不会发生。我收到了错误

Url plugin requires that controller event compose a router; none found

我的代码在这里:

namespace Event\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Zend\Mvc\Router\SimpleRouteStack;
use Event\Model\EventTable;
use Zend\Mvc\Router\Http\Segment;
use Zend\Mvc\MvcEvent;
class IndexController extends AbstractActionController {

    protected $eventsTable;
    public $event;
    public $_event;

    public function indexAction() {
        $id = (int) $this->params()->fromRoute('id', 0);
        if (!$id) {
            return $this->redirect()->toRoute("home");
        }

        $this->event = $this->getEventsTable()->getEvent($id);

//        if ($this->event->end < date("Y-m-d")) {
            return $this->redirect()->toRoute('home');
//        }
        return new ViewModel(array("event" => $this->event));
    }




    public function getEventsTable() {

        if (!$this->eventsTable) {
            $sm = $this->getServiceLocator();
            $this->eventsTable = $sm->get("Event\Model\EventTable");
        }
        return $this->eventsTable;
    }

}

第一次重定向

if (!$id) {
            return $this->redirect()->toRoute("home");
        }

工作正常,第二个不是......任何想法? 谢谢, 亚历

1 个答案:

答案 0 :(得分:0)

检查你的module.config文件路由部分,检查哪个路由条件正确如下:

   'home' => array(
            'type'    => 'segment',
            'options' => array(
                'route'    => '/home[/:action][/:id][/]',
                'constraints' => array(                     
                            'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                            'id' => '[0-9]*',   
                ),
                'defaults' => array(
                    'controller' => 'Home\Controller\Home',
                    'action'     => 'index',
                ),
            ),
        ), 

您可能忘记在路由参数中提及可选参数( id )。

我希望这有效......