28/01/2015, 13:38
|
| | Fecha de Ingreso: marzo-2013
Mensajes: 31
Antigüedad: 11 años, 9 meses Puntos: 0 | |
Respuesta: Personalizar validaciones con doctrine La cosa es que no pueden existir 2 o mas descripciones IGUALES bajo el mismo código y el codigo debe ser único
Por ejemplo: 001 Inglés (Válido)
002 Biología (Válido)
003 Inglés (Válido) 001 Química (Inválido) 014 Química (Válido)
Lo que no tengo claro es desde donde debo llamar a ese método ó si debe estar en otro sitio, es algo que no lo entiendo aún---
Código:
namespace TCG\DGeneralBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
/**
* Ddescasignatura
*
* @ORM\Table(name="ddescasignatura")
* @ORM\Entity(repositoryClass="DdescasignaturaRepository")
*/
class Ddescasignatura
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="SEQUENCE")
* @ORM\SequenceGenerator(sequenceName="ddescasignatura_id_seq", allocationSize=1, initialValue=1)
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="codigo", type="string", length=10, nullable=true)
*/
private $codigo;
/**
* @var string
*
* @ORM\Column(name="descripcion", type="string", length=60, nullable=false)
*/
private $descripcion;
/**
* @var \Idioma
*
* @ORM\ManyToOne(targetEntity="Idioma")
* @ORM\JoinColumn(name="idioma_id", referencedColumnName="id")
*/
private $idioma;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set codigo
*
* @param string $codigo
* @return Ddescasignatura
*/
public function setCodigo($codigo)
{
$this->codigo = $codigo;
return $this;
}
/**
* Get codigo
*
* @return string
*/
public function getCodigo()
{
return $this->codigo;
}
/**
* Set descripcion
*
* @param string $descripcion
* @return Ddescasignatura
*/
public function setDescripcion($descripcion)
{
$this->descripcion = $descripcion;
return $this;
}
/**
* Get descripcion
*
* @return string
*/
public function getDescripcion()
{
return $this->descripcion;
}
/**
* Set idioma
*
* @param \TCG\DGeneralBundle\Entity\Idioma $idioma
* @return Ddescasignatura
*/
public function setIdioma(\TCG\DGeneralBundle\Entity\Idioma $idioma = null)
{
$this->idioma = $idioma;
return $this;
}
/**
* Get idioma
*
* @return \TCG\DGeneralBundle\Entity\Idioma
*/
public function getIdioma()
{
return $this->idioma;
}
public static function loadValidatorMetadata(ClassMetadata $metadata)
{
$metadata->addConstraint(new UniqueEntity(array(
'fields' => array('codigo', 'descripcion'),
'errorPath' => 'descripcion',
'message' => 'Ya ha ingresado una descripción con el mismo código.',
)));
}
}
Última edición por norbbs; 28/01/2015 a las 14:39 |