簡體   English   中英

在Symfony2中映射自己的表單

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM