MYSQL 스키마를 사용하여 고유 한 DB 키를 설정할 수 있다는 것을 알고 있지만 ORM의 독트린이 코드에서 고유 한 열을 설정할 수 있는지 궁금했던가요?doctrine2를 사용하여 고유 한 열을 적용 할 수 있습니까?
예를 들어 런타임에 코드에서 사용자 이름이 고유하도록 코드에서 어떻게 만들 수 있습니까?
CREATE TABLE IF NOT EXISTS `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(300) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(300) COLLATE utf8_unicode_ci NOT NULL,
`password` varchar(300) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
function insert_user($username,$email,$password)
{
$user = new User();
$user->setUsername($username); //HOW CAN I MAKE THIS UNIQUE IN CODE?
$user->setEmail($email);
$user->setPassword($password);
try {
//save to database
$this->em->persist($user);
$this->em->flush();
}
catch(Exception $err){
die($err->getMessage());
return false;
}
return true;
}
질문에 따라 코드를 추가했습니다. – jini
내가 바꿀 필요가있는 테이블 스키마입니다. uniqueConstraints = {@ UniqueConstraint (name = "myname ", columns = {"username "}) 아마 당신이 원하는 것을 추가 할 수 있습니다. – Andreas
더 나은 환경에서 작동하므로 더 나은 답변입니다. – Dennis