2013-08-13 6 views
1

product_details 테이블 사이에 많은 관계가 있으므로 결과적으로 product_has_product_details이라는 세 번째 테이블이 생성됩니다. ProductDetail에 대한ManyToMany 양방향 관계로 데이터를 저장하지 않습니다.

/** 
* Handle category creation 
* 
* @Route("/pdetail/create", name="pdetail_create") 
* @Method("POST") 
* @Template("ProductBundle:ProductDetail:new.html.twig") 
*/ 
public function createAction(Request $request) { 
    $entity = new ProductDetail(); 
    $form = $this->createForm(new ProductDetailType(), $entity); 
    $form->handleRequest($request); 

    if ($form->isValid()) { 
     $em = $this->getDoctrine()->getManager(); 
     $entity->setValuesText(serialize($form->get('values_text')->getData())); 
     $em->persist($entity); 
     $em->flush(); 

     return $this->redirect($this->generateUrl('pdetail_list')); 
    } 

    return $this->render('ProductBundle:ProductDetail:new.html.twig', array(
       'entity' => $entity, 
       'form' => $form->createView(), 
    )); 
} 

나는 양식을 보내, 값 :

/** 
* @ORM\ManyToMany(targetEntity="ProductBundle\Entity\ProductDetail", inversedBy="category") 
* @ORM\JoinTable(name="product_detail_has_category") 
*/ 
protected $pd_category; 

public function __construct() { 
    $this->pd_category = new \Doctrine\Common\Collections\ArrayCollection(); 
} 

그리고 내 컨트롤러 ProductDetailController.php

ProductBundle\Entity\ProductDetail.php

/** 
* @ORM\ManyToMany(targetEntity="CategoryBundle\Entity\Category", mappedBy="pd_category") 
*/ 
protected $category; 

public function __construct() { 
    $this->category = new \Doctrine\Common\Collections\ArrayCollection(); 
} 

public function setCategory($category) { 
    $this->category[] = $category; 
} 

CategoryBundle\Entity\Category.php

이 코드를 가지고 : 나는이 코드를 만든 저장되지만 관계에 대한 값 onship not 그리고 나는 문제가 어디 있는지 찾을 수 없다. 또한이 오류가 발생합니다 :

컨트롤러는 응답 (배열) > Object (ProductBundle \ Entity \ ProductDetail)))) 주어진).

나를 도와 줄 수 있습니까?

답변

1

ProductDetail->setValuesText 방법을 사용하면 좋을 것입니다. 그러나 어쨌든 새로운 Category 객체를 만들거나 이미 존재하는 객체를 가져와야합니다. 그런 다음 수행하십시오

$category = new Category(); 
$em->persist($category); 
$productDetail->setCategory(); 
$em->persist($productDetail); 
$em->flush();