在symfony項目,我有這樣的映射塞與數據庫條目
/resource/{id}
網址模式,我可以使用symfony webiste給出這個文檔轉換爲sluggified網址爲
/resource/{slug}
。
但是,我不知道如何將這個{slug}
映射到數據庫中的記錄。除了在實體類中創建一個slug
變量並在數據庫中存儲一個變量,然後使用該屬性檢索記錄之外,是否有任何標準方法來執行此操作?
UPDATE
我不知道怎麼的symfony從數據庫中檢索數據。我的觀點動作如下。
/**
* Finds and displays a Resource entity.
*
* @Route("/{slug}", name="resource_show")
* @Method("GET")
*/
public function showAction(Resource $resource)
{
$deleteForm = $this->createDeleteForm($resource);
return $this->render('resource/show.html.twig', array(
'resource' => $resource,
'delete_form' => $deleteForm->createView(),
));
}
我只是在控制器更換id
與slug
在ResourceEntity
進行正確修改後。現在的symfony使用slug
自動檢索從數據庫信息,並將其傳遞給showAction
方法..
什麼是你的代碼段中的findBySlug?它是由symfony自動生成的東西嗎?還是要創建一個自定義的方法? – niyasc
@niyasc Doctrine提供了findOneBy *()findBy *(),您可以用有效的屬性(列名)替換* – Vamsi