0
product_importの値を挿入するには?Doctrineは2つの結合エンティティを挿入します
エンティティが
/**
* Features
*
* @ORM\Table(name="features")
* @ORM\Entity
*/
class Features
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=45, nullable=false)
*/
private $name;
}
エンティティ製品
/**
* Product
*
* @ORM\Table(name="product", indexes={@ORM\Index(name="fk_product_features1_idx", columns={"features_id"})})
* @ORM\Entity
*/
class Product
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
*/
private $id;
/**
* @var \Features
*
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
* @ORM\OneToOne(targetEntity="Features")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="features_id", referencedColumnName="id")
* })
*/
private $features;
/**
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* @param integer $id
*
* @return self
*/
public function setId($id)
{
$this->id = $id;
return $this;
}
/**
* @return \Features
*/
public function getFeatures()
{
return $this->features;
}
/**
* @param \Features $features
*
* @return self
*/
public function setFeatures(\Features $features)
{
$this->features = $features;
return $this;
}
}
エンティティ製品輸入
/**
* ProductImport
*
* @ORM\Table(name="product_import", indexes={@ORM\Index(name="fk_product_import_product1_idx", columns={"product_id", "product_features_id"})})
* @ORM\Entity
*/
class ProductImport
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var \Product
*
* @ORM\ManyToOne(targetEntity="Product")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="product_id", referencedColumnName="id"),
* @ORM\JoinColumn(name="product_features_id", referencedColumnName="features_id")
* })
*/
private $product;
/**
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* @param integer $id
*
* @return self
*/
public function setId($id)
{
$this->id = $id;
return $this;
}
/**
* @return \Product
*/
public function getProduct()
{
return $this->product;
}
/**
* @param \Product $product
*
* @return self
*/
public function setProduct(\Product $product)
{
$this->product = $product;
return $this;
}
}
INSERT
$data['product'] = entityProduto;
$data['product_features'] = 1;
$entity = new ProdutosImport($data);
$em->persist($entity);
$em->flush();
機能
メッセージエラー
SQLSTATE [23000]:整合性制約違反:1048 は
エンティティの完全なコードにクラス名を指定してください。 – Mcsky
完了です。より多くのコードが必要ですか? –
ProdutosImportエンティティとは何ですか、このデータ配列を持つコンストラクタでは何をしますか? – Mcsky