के लिए आवश्यकता को हटाने के लिए FOSUserBundle ओवरराइड मैपिंग FOSUserBundle में उपयोगकर्ता नाम की आवश्यकता को हटाना चाहता हूं। मेरे उपयोगकर्ता केवल एक ईमेल पते का उपयोग करके लॉगिन करेंगे और मैंने उपयोगकर्ता इकाई के हिस्से के रूप में वास्तविक नाम फ़ील्ड जोड़े हैं। मुझे एहसास हुआ कि मैं पूरी मानचित्रण फिर से करना के रूप में वर्णित here. मुझे लगता है कि मैं इसे ठीक से किया है की जरूरत है लेकिन जब मैं पंजीकरण फार्म सबमिट करने का प्रयास मैं त्रुटि मिलती है: सिद्धांत द्वारा मैपउपयोगकर्ता नाम
"केवल फ़ील्ड नाम हो सकता है विशिष्टता के लिए मान्य। "
अजीब बात यह है कि मैंने उपयोगकर्ता इकाई में किसी भी चीज़ के लिए एक अद्वितीय बाधा डालने की कोशिश नहीं की है।
<?php
// src/MyApp/UserBundle/Entity/User.php
namespace MyApp\UserBundle\Entity;
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity
* @ORM\Table(name="depbook_user")
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=255)
*
* @Assert\NotBlank(message="Please enter your first name.", groups={"Registration", "Profile"})
* @Assert\MaxLength(limit="255", message="The name is too long.", groups={"Registration", "Profile"})
*/
protected $firstName;
/**
* @ORM\Column(type="string", length=255)
*
* @Assert\NotBlank(message="Please enter your last name.", groups={"Registration", "Profile"})
* @Assert\MaxLength(limit="255", message="The name is too long.", groups={"Registration", "Profile"})
*/
protected $lastName;
/**
* @ORM\Column(type="string", length=255)
*
* @Assert\NotBlank(message="Please enter your email address.", groups={"Registration", "Profile"})
* @Assert\MaxLength(limit="255", message="The name is too long.", groups={"Registration", "Profile"})
* @Assert\Email(groups={"Registration"})
*/
protected $email;
/**
* @ORM\Column(type="string", length=255, name="email_canonical", unique=true)
*/
protected $emailCanonical;
/**
* @ORM\Column(type="boolean")
*/
protected $enabled;
/**
* @ORM\Column(type="string")
*/
protected $salt;
/**
* @ORM\Column(type="string")
*/
protected $password;
/**
* @ORM\Column(type="datetime", nullable=true, name="last_login")
*/
protected $lastLogin;
/**
* @ORM\Column(type="boolean")
*/
protected $locked;
/**
* @ORM\Column(type="boolean")
*/
protected $expired;
/**
* @ORM\Column(type="datetime", nullable=true, name="expires_at")
*/
protected $expiresAt;
/**
* @ORM\Column(type="string", nullable=true, name="confirmation_token")
*/
protected $confirmationToken;
/**
* @ORM\Column(type="datetime", nullable=true, name="password_requested_at")
*/
protected $passwordRequestedAt;
/**
* @ORM\Column(type="array")
*/
protected $roles;
/**
* @ORM\Column(type="boolean", name="credentials_expired")
*/
protected $credentialsExpired;
/**
* @ORM\Column(type="datetime", nullable=true, name="credentials_expired_at")
*/
protected $credentialsExpiredAt;
public function __construct()
{
parent::__construct();
// your own logic
}
/**
* @return string
*/
public function getFirstName()
{
return $this->firstName;
}
/**
* @return string
*/
public function getLastName()
{
return $this->lastName;
}
/**
* Sets the first name.
*
* @param string $firstname
*
* @return User
*/
public function setFirstName($firstname)
{
$this->firstName = $firstname;
return $this;
}
/**
* Sets the last name.
*
* @param string $lastname
*
* @return User
*/
public function setLastName($lastname)
{
$this->lastName = $lastname;
return $this;
}
}
मैं इस बारे में विभिन्न सुझावों को देखा है लेकिन सुझाव से कोई भी मेरे लिए काम करने लगते हैं:
यहाँ मेरी पूर्ण उपयोगकर्ता इकाई फ़ाइल है। FOSUserBundle दस्तावेज़ बहुत ही सामान्य अनुरोध होने के बारे में बहुत दुर्लभ हैं।
मैं बस फॉस्बंडल को खुश रखने के लिए यादृच्छिक उपयोगकर्ता नाम सेट करने पर विचार कर रहा था - लेकिन ईमेल सेट करना बहुत अधिक समझ में आता है! सरल, और सुरुचिपूर्ण समाधान! – Prathap
आप 'उपयोगकर्ता नाम' (बंडल के कोड में परिवर्तन के मामले में) सेट करने के बाद 'parent :: setEmail ($ ईमेल) 'भी कॉल कर सकते हैं। मूल विधि भी 'इसे वापस लौटाती है;', जो विधियों को श्रृंखलाबद्ध बनाती है। – Brewal