使用MVC架构(Zend Framework),您应该使用带有if语句的单个视图来显示/处理表单,还是使用多个视图(即一个视图显示表单,一个视图显示结果)。
在这种情况下,我正在尝试制作类似谷歌的搜索引擎。显示搜索结果时,页面布局将发生根本性变化。
例如;控制器:
public function indexAction()
{
if (!$this->getRequest()->isPost()) {
// display form
} else {
if ($this->_request->isPost()) {
if (!$form->isValid($formData)) {
// re-display form with errors
} else {
// process form and;
// display result using same action/view?
// display result using same action but use a different view?
}
}
}
}
使用相同的视图:
<?php if(isset($this->form)) : ?>
<!-- show form -->
<?php else: ?>
<!-- show result -->
<?php endif; ?>
希望这是有道理的。
答案 0 :(得分:1)
不要陷入旧的整体编码风格,其中一大块代码为一个输出页面执行所有操作。 MVC的重点是如此独立的责任。将视图视为单个输出的模板,无论它出现在哪个页面/网址上。表单是一个输出。搜索结果是另一个。使用两个视图。
答案 1 :(得分:0)
减少if-s - 减少错误。我建议你在这里使用更多不同的观点,可以重用一种形式。