多个控制器呢?

jbl*_*lue 1 php zend-framework

我是新来的,所以我不确定什么是组织我正在尝试做的最好的方法.我指导用户进行一系列测验.mysite.com/quiz1 mysite.com/quiz2 mysite.com/quiz3 mysite.com/quiz4

当用户回答第一个测验时,他被转发到一个页面,告诉他他的答案是否正确,并且在同一页面上他可以选择回答另一个测验.如果他回答,他将再次被带到一个页面,在那里他被告知他的答案是否正确并提交第三个测验.

从架构方面来看,这些quiz1,quiz2等各个页面都被认为是自己的控制器吗?他们的路径说他们可能是,但如果是的话对我没有意义.有没有办法让它们在相同的路径上,但将它们捆绑在同一个控制器中.正如我所说,我是Zend的新手,所以我希望得到一些关于正确方法的反馈意见.

Elz*_*ugi 5

我会做一个Quiz控制器,它将有showQuiz(),validateQuiz()等动作来读取测验参数.这样您就可以重用大部分代码.quizes将是db中的条目,您还可以在其中构建路径或连接.

class QuizController extends Zend_Controller_Action 
{
     public function showAction()
     {
          // you can play this in routes but it could be basically something like this
          // localhost/quiz/id/1
          $quiz_id = $this->_request->getParam('id'); 
          $this->view->quiz = $this->getQuizTable()->find($quiz_id);
     }

     public function validateAction()
     {
          $quiz_id = $this->_request->getParam('id'); 
          $quiz = $this->getQuizTable()->find($quiz_id);
          $quiz->validate(); // build your own validator function
     }
}
Run Code Online (Sandbox Code Playgroud)