“找不到行$ id”错误

时间:2014-03-06 16:14:27

标签: zend-framework2

关于入门(专辑)教程的简单问题。 它的'关于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的成功页面为目标)?

谢谢!

1 个答案:

答案 0 :(得分:1)

您需要了解代码。不要盲目复制粘贴,了解那里发生的事情。你所要求的几乎没有任何意义。

删除相册后,您应该会看到概述页面或“已删除的成功”页面。这完全由您决定要选择什么,但在所有情况下都需要重定向。还有forward()插件,但它只是在内部进行重定向。对于您提供的给定用例,这样做没有任何优势。

如果您想要返回除重定向之外的其他内容,请务必继续并返回指向其他模板的其他ViewModel

TL / DR :在您想要修改代码之前了解代码。