私は、すべてのNote therのetudiant_idとevaluation_idに対して、「Note」というエンティティを持っています。
etudiant_idとevaluation_idの組み合わせは一意である必要があります。
私は彼にNote object1(etudiant_id=1,evaluation_id=1) and Note2 object2(etudiant_id=1,evaluation_id=1)
を渡してexmpleのために:これは例外をスローする必要があります。
ただし、 の場合:
Note object1(etudiant_id=1,evaluation_id=2) and Note2 object2(etudiant_id=1,evaluation_id=1)
:これは何も投げません。
ところで私は試しました:* @UniqueEntity(fields={"evaluation","etudiant"})
しかし、このdidnt work correcte。あなたが唯一の@Entityアノテーションを持っている必要があり同じエンティティの2つのファイルの組み合わせを検証する
<?php
namespace EcoleBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
/**
* Note
* @ORM\Entity
* @UniqueEntity(fields={"evaluation","etudiant"})
* @ORM\Table(name="note")
* @ORM\Entity(repositoryClass="EcoleBundle\Repository\NoteRepository")
*/
class Note
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var float
*
* @ORM\Column(name="valeur", type="float", nullable=true)
*/
private $valeur;
/**
* @ORM\ManyToOne(targetEntity="EcoleBundle\Entity\Evaluation", inversedBy="notes")
*/
private $evaluation;
/**
* @ORM\ManyToOne(targetEntity="EcoleBundle\Entity\Etudiant", inversedBy="notes")
*/
private $etudiant;
ここではカスタム検証制約が必要なようです。ご使用のバージョンに応じて、このリンクが便利です:http://symfony.com/doc/current/validation/custom_constraint.html –