如何在操作后保留原始视图呈现不同的布局元素

时间:2014-01-22 17:41:50

标签: zend-framework viewrendering

我有一个动作/视图脚本,显示一个行表,每行都是可点击的:我希望此操作更新特定的div,其中包含该行的更多详细信息。但是,当我这样做时,原始表丢失(视图已清除) 如何获取渲染特定脚本的操作,但不影响默认布局容器? (在这种情况下,layout-> content()) 注意:我可以使用_forward()或类似的,但我想知道是否有更优雅的解决方案。

我的控制器详细操作如下所示

public function detailAction()
{
    // action body
$clientModel = new Model_Clients();
$id = $this->_request->getParam('id');

// get the specific row by 'id'
try {
    $result = $clientModel->getClient($id);
    $this->view->result = $result;
} catch (Exception $e) {
    echo 'Error: ',  $e->getMessage(), "\n";
    //die();
}

$this->render('detail', 'mainContentRight');
//$this->listAction(); !This doesnt work!
$this->_forward('list'); // Nasty, but works.

}

'detail'指的是此动作的视图脚本(似乎是多余的),'mainContentRight'是要更新的目标布局元素。

我认为我在视图脚本中缺少一个重要的观点,欢迎任何建议。

1 个答案:

答案 0 :(得分:0)

转发后,您仍需要与listAction中相同的表数据。然后表应该正确呈现,但我认为更好的方法是使用AJAX加载详细信息。