形式我有3類:Category
,Parameter
和Product
。建立與動態小部件
Category
與Parameters
有一對多的關係。Product
有Category
一個一對多的關係。Parameters
是用於產品(顏色,重量,尺寸,品牌 等)的屬性。
當我選擇一個類別並創建一個新產品時,我想用這些參數創建一個表單。 我該怎麼做? symfony表單框架有可能嗎? 我希望你的幫助。
我試圖做到這一點是這樣的:在行動
class ProductRepository extends EntityRepository
{
public function getParameters()
{
$em = $this->getEntityManager();
$parameters = $em->getRepository('ShopProductBundle:CatParameter')->findAll();
$data = array();
foreach ($parameters as $k => $value) {
$name = $value->getId();
$data[$name] = array("label" => $value->getName());
}
return $data;
}
}
Form類
class ProductType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('name', 'text', array('label' => 'Name'));
$data = $options['data'];
foreach($data as $k => $item){
$builder->add((string)$k, 'text', array('label' => $item['label']));
}
}
public function getName()
{
return 'shop_productbundle_categorytype';
}
public function getDefaultOptions(array $options){
return array('data_class' => 'Shop\ProductBundle\Entity\Product');
}
}
,創造形式:
$parameters = $em->getRepository('ShopProductBundle:Product')->getParameters();
$form = $this->createForm(new ProductType(), $parameters);
末有例外:
預期類型的參數「店\ ProductBundle \實體\產品」,「陣列」 因爲在你的控制器給出