मुझे पता है कि मैं हमेशा MYSQL स्कीमा का उपयोग करके एक अद्वितीय डीबी कुंजी सेट कर सकता हूं, हालांकि ओआरएम की तरह की सिद्धांत ने आपको कोड में अद्वितीय होने के लिए कॉलम सेट करने की अनुमति दी है, तो केवल उत्सुक था?क्या 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 ", कॉलम = {" उपयोगकर्ता नाम "}) शायद वह होगा जो आप अपने मामले में जोड़ना चाहते हैं। – Andreas
यह एक बेहतर उत्तर है क्योंकि यह अधिक परिस्थितियों में काम करता है – Dennis