我剛開始使用symfony 1.4和Doctrine。 (使用1.0 - 1.2 +之前很多推進)。主義繼承。有沒有一種簡單的方法來獲得所有的孩子類/表在symfony表單的選擇字段中使用它們?
我以爲給了主義一個嘗試,因爲過去的發展過程很快而且巨大。
感謝jwage ;-)
我使用表繼承。這是我的schema.yml的一小部分:
Articles:
columns:
id:
type: integer(4)
primary: true
notnull: true
autoincrement: true
marken_id:
type: integer(4)
notnull: false
user_id:
type: integer(4)
notnull: false
address_id:
type: integer(4)
notnull: false
...
Vehicles:
inheritance:
extends: Articles
type: concrete
Rennfahrzeuge:
columns:
stvo:
type: boolean
notnull: false
default: false
inheritance:
extends: Vehicles
type: concrete
Tourenwagen:
inheritance:
extends: Rennfahrzeuge
type: column_aggregation
keyField: type
keyValue: 1
...
Sonstige:
inheritance:
extends: Rennfahrzeuge
type: column_aggregation
keyField: type
keyValue: 6
Karts:
inheritance:
extends: Vehicles
type: concrete
TonyKart:
inheritance:
extends: Karts
type: column_aggregation
keyField: type
keyValue: 1
...
Sonstige:
inheritance:
extends: Karts
type: column_aggregation
keyField: type
keyValue: 9
現在林想用一種簡單的方法來創建一個正確的形式。
用戶應在表格頂部的選擇字段(如你 可以在這裏看到:http://msm-esv.dyndns.org/frontend_dev.php/fahrzeuge/insert )
你應該等選擇「父類」像Rennfahrzeuge或卡丁車和 。
之後,用戶應該選擇像Tourenwagen或 Sonstige這樣的孩子。
然後頁面應該重新加載並顯示正確的表單。
在Doctrine中是否有任何函數獲得繼承/子類 以在第二個選擇字段中顯示它們?
(如Rennfahrzeuge有Tourenwagen,...,...,SONSTIGE和卡丁車有 TonyKart,...,...,SONSTIGE)
之後,我可以動態地創建指定的表單類,如:
$chooseMode = $request->getParameter('chooseMode').'Form';
$modeFormClass = new $chooseMode();
或我曾想過只設置正確的模式在父 窗體類。
你的想法是什麼?我會很感激的任何建議和幫助 :-)
非常感謝,
馬爾科