Symfony 2 - 使用/ gecko / {name} / show代替/ gecko / {id} / show

时间:2015-04-29 22:45:53

标签: php symfony

我是symfony的新手,所以请原谅任何简单的错误。

我已经通过控制台为我的壁虎生成了一个CRUD。一切正常,一切都很好。但是,我想要做的是使用URL中的名称而不是ID,并使查询按预期工作。例如:

目前我有http://breedr.dev/app_dev.php/gecko/1/show但我希望它是http://breedr.dev/app_dev.php/gecko/Zilly/show - 我希望这是有道理的。

这是我的showAction控制器中的Gecko

public function showAction($name)
    {
        $em = $this->getDoctrine()->getManager();

        $entity = $em->getRepository('BreedrGeckoBundle:Gecko')->find($name);

        if (!$entity) {
            throw $this->createNotFoundException('Unable to find Gecko entity.');
        }

        $deleteForm = $this->createDeleteForm($name);

        return array(
            'entity'      => $entity,
            'delete_form' => $deleteForm->createView(),
        );
    }

但我的问题是我得到“无法找到Gecko实体。”。查看日志后我可以看到这种情况正在发生:

DEBUG - SELECT t0.id AS id1, t0.name AS name2, t0.aquisition_date AS aquisition_date3, t0.morph AS morph4, t0.sex AS sex5, t0.genetics AS genetics6, t0.bio AS bio7, t0.bred AS bred8, t0.hatchling AS hatchling9, t0.clutch AS clutch10, t0.image_name AS image_name11, t0.updatedAt AS updatedAt12 FROM Gecko t0 WHERE t0.id = ?

显然,您可以看到WHERE使用id字段时应该是名称。我需要做什么?

0 个答案:

没有答案