4
아래에 일대 다 양방향 관계가 있습니다.doctrine2 : 일대 다 양방향 관계에서 역변환을 저장하는 방법은 무엇입니까?
나는 새/편집 카테고리 형태의 카테고리에 관련된 제품을 저장하려고 할 때 symfony2 작업으로 침전물 작업을 생성 한 후, 제품이 저장되지 않습니다 ...
namespace Prueba\FrontendBundle\Entity;
use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @ORM\Entity
* @ORM\Table(name="category")
*/
class Category
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\OneToMany(targetEntity="Product", mappedBy="category")
*/
protected $products;
/**
* @ORM\Column(name="name")
*/
protected $name;
public function __construct()
{
$this->products = new ArrayCollection();
}
public function getId()
{
return $this->id;
}
public function getName()
{
return $this->name;
}
public function setName($name)
{
$this->name = $name;
}
public function __toString()
{
return $this->name;
}
public function getProducts()
{
return $this->products;
}
public function setProducts($products)
{
die("fasdf"); //here is not entering
$this->products[] = $products;
}
public function addProduct($product)
{
die("rwerwe"); //here is not entering
$this->products[] = $product;
}
}
namespace Prueba\FrontendBundle\Entity;
use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @ORM\Entity
* @ORM\Table(name="product")
*/
class Product
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\ManyToOne(targetEntity="Category", inversedBy="products")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
*/
protected $category;
/**
* @ORM\Column(type="string", length=100)
*/
protected $name;
public function getId()
{
return $this->id;
}
public function getName()
{
return $this->name;
}
public function setName($name)
{
$this->name = $name;
}
public function getCategory()
{
return $this->category;
}
public function setCategory($category)
{
$this->category = $category;
}
public function __toString()
{
return $this->name;
}
}
물론 "addProduct"가 $ product-> setProductCategory ($ this)를 실행하고 좋아한다면 다른 방법으로도 할 수 있습니다. 작업 환경에 따라 다릅니다. –
내 질문을 만들었을 때 적절한 수업을 붙여 넣지 않았어. 이제 괜찮아. 다시 봐 줄래? – ziiweb
똑같은 문제가 적용됩니다. 양쪽에서 양방향 업데이트가 필요합니다. Category :: addProduct ($ product)에 $ product-> setCategory ($ this) 줄을 추가하십시오. 너는 설정되어야한다. –