エンティティ CategoriesConfig を持つ Google カテゴリ マッチング (データベースからの最初のフィールド カテゴリと、Google カテゴリからのユーザー オートコンプリート フィールドの 2 番目のフィールド) フォームを作成したいと思います。
private $id;
/**
* @var string
*
* @ORM\Column(name="category_site", type="string", length=100)
*/
private $categorySite;
/**
* @var string
*
* @ORM\Column(name="category_google", type="string", length=100)
*/
private $categoryGoogle;
私のコントローラーで私はこれを試しました
/**
* @Route("/adminDashboard/categoriesMatching", name="googleShopping_categories")
* @Security("has_role('ROLE_SUPER_ADMIN')")
*/
public function categoriesMatchingAction(Request $request)
{
// create a task and give it some dummy data for this example
$idSite = $this->get('session')->get('_defaultWebSite')->getId();
$categories = $this->getDoctrine()->getRepository('DataSiteBundle:SiteCategory')->findBy(array('IdSite' => $idSite));;
$categories_config = new CategoriesConfig();
//var_dump($categories);exit;
$form = $this->createForm(new CategoriesConfigType($categories), $categories_config);
return $this->render('GoogleShoppingBundle:Default:categoriesMatching.html.twig', array(
'form' => $form->createView()
));
}
そして私のフォームタイプ: CategoriesConfigType:
class CategoriesConfigType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
private $site_categories;
public function __construct ($site_categories) {
$this->site_categories = $site_categories;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
foreach($this->site_categories as $k => $categorie){
$builder
->add('categorySite')
->add('categoryGoogle');
}
}
/**
* @param OptionsResolver $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Sp\GoogleShoppingBundle\Entity\CategoriesConfig'
));
}
}
行フィールドと同じ数のカテゴリ行が必要です(website itecategorie および google categorie)
結果は次のようになります。
前もって感謝します!