Symfony错误 - 找不到对象

时间:2017-06-12 10:30:47

标签: php symfony

我很抱歉提出这样的问题而且我知道之前有这样的问题,但我的情况相当......愚蠢。我所拥有的是一个项目管理系统,我想显示所有工作正常并由Symfony自动生成的项目。在与ProjectController相同的控制器中,我做了另一个动作。我想列出已经完成的所有已归档项目。首先,我只需复制粘贴代码和注释,并更改路径和函数名称。这是我的indexAction函数

/**
     * Lists all project entities.
     *
     * @Route("/", name="project_index")
     * @Method("GET")
     */
    public function indexAction()
    {
        $em = $this->getDoctrine()->getManager();
        $projects = $em->getRepository('AppBundle:Project')->findAll();
        return $this->render('project/index.html.twig', array(
            'projects' => $projects,
        ));
    }

它很简单。现在我的archiveAction函数是相同的

/**
     * Lists all project entities.
     *
     * @Route("/archive", name="project_archive")
     * @Method("GET")
     */
    public function archiveAction()
    {
        $em = $this->getDoctrine()->getManager();
        $projects = $em->getRepository('AppBundle:Project')->findAll();
        return $this->render('project/index.html.twig', array(
            'projects' => $projects,
        ));
    }

到目前为止,我甚至没有过滤项目,但做的事与我在indexAction函数中做的完全相同,并且要记住两个函数都在同一个控制器中。这是我在尝试显示所有已归档项目时收到的错误 -

  

找不到AppBundle \ Entity \ Project对象。

索引操作工作正常并显示所有项目,但如果我更改路由并更改函数的名称并保持所有内容相同且它们位于同一个Controller中 - 在一种情况下它可以找到AppBUndle \ Entity \ Zadanie,但在另一种情况下 - 它不能。

2 个答案:

答案 0 :(得分:2)

已解决我设法通过将存档功能放在首位来解决问题。在顶部,我的意思是在任何其他功能之前的第一个位置。在这之前我尝试切换路线。我从indexAction中取出了路径并将其放在archiveAction的注释中,反之亦然。这两个功能都运行得很好。然后我按原样归还了它们,归档仍然没有工作。然后我简单地将存档放在索引之前的第一位,它就像魅力一样。我不知道刚刚发生了什么,为什么但是......没关系......它有效。 (严重的是 - 如果有人知道为什么我会很感激的话)

答案 1 :(得分:0)

我发现了相同的问题,并且设法找到了问题的原因。 路由问题,例如:

@Route ("/ {id}", name = "project_archive_show")
function2

@Route ("/ archive", name = "project_archive")
function1

网址必须具有个性化的规范: 例如:

@Route ("/ show / {id}", name = "project_archive_show")
function2
or says that id is an integer