私は非常に困惑しているような問題によって盗まれています。参考までに - 私は知っており、ここでは教義の質問の大部分を読んでいるので、私は教義の基礎と関係を特定しています。Doctrineは1対多の関係を保存しません
以下だから1 Sample
が複数Analysis
を持つことができますどのように私のデータモデルのルックス(コードの関連セクションを掲示)
class Sample
{
/**
* @ORM\OneToMany(targetEntity="Analysis", mappedBy="sample", cascade={"persist"})
*
protected $analyses
public function addAnalysis(Analysis $analysis)
{
$analyses->setSample($this);
$this->analyses[] = $analyses;
}
}
と分析
class Analysis
{
/**
* @ORM\ManyToOne(targetEntity="Sample", inverseBy="analyses", cascade={"persist"})
* @ORM\JoinColumn(name="sample_id", referencedColumnName="id")
*
protected $sample
public function setSample(Sample $sample)
{
$this->sample = $sample;
}
}
です。しかし、新しいAnalysis
を作成している間に、私はそれを作成させません。 NOT NULL制約の例外がスローされています。
以下は、私が試したコードです。
$analysis = new Analysis
$analysis->setUUID("seeebbbfg");
$analysis->setStatus(Analysis::STATUS_DONE);
$sample = $sample->addAnalysis($analysis)
$em->persist($sample);
$em->flush();
I多くのリンクや教義のドキュメントを通じて
Doctrine One-To-Many Relationship Won't Save - Integrity Constraint Violation を行っている多くの関係-文句を言わない - 保存 - 整合性制約違反 Symfony 2 doctrine persist doesn't work after updating Relationship Mapping Doctrine entities relationship
このDoctrine "A new entity was found through the relationship" errorを通過した後、私はサンプルを永続化する前に$analysis
を残そうとしましたが、 '新しいエンティティが見つかりました'というエラーが表示され、この公式のドクトリンのドキュメント http://doctrine-orm.readthedocs.io/projects/doctrine-orm/en/latest/reference/association-mapping.html
わからないことがわかりました。誰もこれにどのような光を当てることができますか?
UPDATE 1
[Doctrine\DBAL\Exception\NotNullConstraintViolationException]
An exception occurred while executing
INSERT INTO analysis (id, uuid, type, status, submission_at, sample_id) VALUES (?,?,?,?,?,?) with params [202066, "seeebbbfg", "temp", 2, "2016-5-22 12:16:39", null]
null value in column "sample_id" violates not-null constraint
は、あなたが完全なNOTNULL例外メッセージを提供することができ、結果を教えてください? –
@dragoste:そこに行きます。 – verisimilitude