Несколько контроллеров для этого? - PullRequest
1 голос
/ 16 сентября 2010

Я новичок в Zend, поэтому я не уверен, как лучше организовать то, что я пытаюсь сделать. Я направляю пользователя к серии тестов. mysite.com/quiz1 mysite.com/quiz2 mysite.com/quiz3 mysite.com/quiz4

Когда пользователь отвечает на первый тест, он перенаправляется на страницу, которая сообщает ему, является ли его ответ правильным, и на той же странице он может выбрать ответ на другой тест. Если он ответит на него, он снова будет перенаправлен на страницу, где ему сообщают, если его ответ был верным, и ему предоставляется третья викторина.

С точки зрения архитектуры, каждая из этих страниц викторины 1, викторины 2 и т. Д. Считается собственным контроллером? Их путь говорит, что они могут быть, но не имеет смысла для меня, если они есть. Есть ли способ иметь их по тем же путям, но связать их в одном контроллере. Как я уже сказал, я новичок в Zend, поэтому буду благодарен за отзывы о правильном способе сделать это.

1 Ответ

5 голосов
/ 16 сентября 2010

Я бы сделал контроллер Quiz, который будет иметь такие действия, как showQuiz (), validateQuiz (), который будет читать параметр викторины.Таким образом, вы будете использовать большую часть кода.Тесты будут записи в БД, и там вы также можете строить пути или соединения с ними.

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