多个控制器呢?

时间:2010-09-16 06:28:44

标签: php zend-framework

我是新手,因此我不确定组织我想要做的事情的最佳方法是什么。我指导用户进行一系列测验。 mysite.com/quiz1 mysite.com/quiz2 mysite.com/quiz3 mysite.com/quiz4

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

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

1 个答案:

答案 0 :(得分: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
     }
}