[英]Mapping myself form in Symfony2
我想自己映射一個表單的實體。 問題是我正在使用數據庫中的36000個城市,當我使用findBy執行請求時,Doctrine不會返回任何結果。 但是我通過編寫我自己的方法來設置它。
問題是我需要通過實體字段要求城市的形式(因為有很多數據,我使用帶有遠程數據的select2)。 到目前為止,沒有問題,但是當我提交表單時,Symfony無法將城市的id綁定到數據庫條目,因為沒有經典的Doctrine方法。
所以,我的問題是:我如何告訴Symfony使用我的存儲庫的方法而不是Doctrine的方法來綁定我的數據?
非常感謝你 ! 祝你有個美好的一天;)
方法findBy()
請求一個數組參數有時人們會錯過:
$result = $this->getDoctrine()->getManager()
->getRepository("AcmeDemoBundle")->findBy(array(
"city" => $city)
);
如果您想使用存儲庫,只需將其映射到您的類:
/**
* @ORM\Entity(repositoryClass="Acme/DemoBundle/Repository/CountryRepository")
*/
class Country
{ ... }
然后進去
class CountryRepository extends EntityRepository
{
public function getMySpecificCity($city)
{
$qb = $this->createQueryBuilder('c');
$cities = $qb->select(*)
->where("c.city =:city ")->setParameter('city', $city)
->getQuery()
->getResult();
return $cities;
}
...
}
所以你可以使用它如下:
$result = $this->getDoctrine()->getManager()
->getRepository("AcmeDemoBundle")->getMySpecificCity($city);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.