我是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
字段时应该是名称。我需要做什么?