我試圖輸出一個選擇(選擇)列表,其值來自相關實體。在Flight實體中,與機場實體存在多對一關係。機場實體有幾個屬性,如城市,國家,代碼Iata。眼下,這是怎樣的類型創建:在選擇字段類型中自定義值的正確方法?
$builder->add('origin', 'entity', array('label' => 'Origin Airport', 'class' => 'FlightcaseBookingBundle:Airport', 'property' => 'codeIata'));
這工作得很好,並且它會輸出與機場 - > codeIata作爲選項標籤和機場 - > ID爲值的元素,像這樣:
<option value="1234">CDG</option>
但我其實想的是選擇列表中的選項來顯示2場,分別是國際航空運輸協會代碼,然後在機場的名稱,例如串聯
<option value="1234">CDG - Paris Charles de Gaulle</option>
於是我叫我getLongName()機場實體,這樣做是爲了我的內心產生了一種新方法。然後,我將codeIata的屬性值替換爲longName。
這基本上做我想要的。但對我來說,這看起來很詭異,而且也不可取,因爲實體類嚴格意味着定義對象本身。最重要的是,我不能以這種方式向getLongName方法發送任何參數(如$ maxlength左右)。那麼操縱元素中顯示內容的正確方法是什麼?我需要創建一個Transformer類來做到這一點,還是有一個更簡單的方法?