关于入门(专辑)教程的简单问题。 它的'关于deleteAction:
public function deleteAction()
{
$id = (int) $this->params()->fromRoute('id', 0);
if(!$id){
return $this->redirect()->toRoute('album');
}
$request = $this->getRequest();
if ($request->isPost()) {
$del = $request->getPost('del', 'No');
if($del == 'Yes'){
$id = (int) $request->getPost('id');
$this->getAlbumTable()->deleteAlbum($id);
}
return $this->redirect()->toRoute('album');
}
return array(
'id' => $id,
'album' => $this->getAlbumTable()->getAlbum($id)
);
}
根据我的理解,当从数据库中删除相册时,会在此之后发生重定向到/ album / route。如果我评论(抑制)该重定向,则会出现错误“找不到行$ id”,因为getAlbum($ id)然后尝试检索刚刚删除的相册,因此不再存在...
我的问题是:是否有一种方法(如返回数组()或getAlbum()上的条件语句)使得工作在没有重定向的情况下工作(应该以btw的成功页面为目标)?
谢谢!
答案 0 :(得分:1)
您需要了解代码。不要盲目复制粘贴,了解那里发生的事情。你所要求的几乎没有任何意义。
删除相册后,您应该会看到概述页面或“已删除的成功”页面。这完全由您决定要选择什么,但在所有情况下都需要重定向。还有forward()
插件,但它只是在内部进行重定向。对于您提供的给定用例,这样做没有任何优势。
如果您想要返回除重定向之外的其他内容,请务必继续并返回指向其他模板的其他ViewModel
。
TL / DR :在您想要修改代码之前了解代码。