मैंने अपनी परियोजना में डेटा फिक्स्चर जोड़ा है जो एक दूसरे से इकाई वस्तुओं को संदर्भित करने पर निर्भर करता है। जैसेमैं सिद्धांत फ़िक्स्चर संदर्भ से एक इकाई कैसे प्राप्त कर सकता हूं?
डेटा स्थिरता एक में, मैं जोड़ लिया है एंटिटी संदर्भ:
// GroupEntity_Fixtures.php file
$this->addReference('GROUP_USER', $groupUser);
$this->addReference('GROUP_ADMIN', $groupAdmin);
कहाँ $ groupAdmin और $ groupUser दोनों समूह() संस्थाओं कर रहे हैं। में मेरी दूसरी जुड़नार फाइल मैं के माध्यम से अपना उपयोगकर्ता संस्था के लिए उन संस्थाओं जोड़ना चाहते हैं:
//UserEntity_Fixtures.php file
$userActive->addGroup($this->getReference('GROUP_USER'));
$ userActive समूह इकाई के लिए कई रिश्ते के लिए कई के साथ एक उपयोगकर्ता इकाई है।
[Symfony\Component\Debug\Exception\ContextErrorException]
Catchable Fatal Error: Argument 1 passed to Blogger\BlogBundle\Entity\User:
:addGroup() must be an instance of Blogger\BlogBundle\Entity\groups, instan
ce of Proxies\__CG__\Blogger\BlogBundle\Entity\Group given, called in /home
/na/Practice/src/Blogger/BlogBundle/DataFixtures/ORM/CreateUserController_S
ignUpForm_UserEntity_Fixtures.php on line 27 and defined in /home/na/Practi
ce/src/Blogger/BlogBundle/Entity/User.php line 305
मैं कैसे इकाई यह उम्मीद करने के लिए प्रॉक्सी से संदर्भ परिवर्तित: दुर्भाग्य से ऐसा लगता है कि मैं सिर्फ इकाई के एक प्रॉक्सी में गुजर रहा हूँ और न ही इकाई है जो निम्न त्रुटि renders लगता है?
समूह स्थिरता के लिए कोड:
<?php
// DataFixtures/ORM/GroupEntity_Fixtrues.php
namespace Blogger\BlogBundle\DataFixtures\ORM;
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
use Doctrine\Common\DataFixtures\AbstractFixture;
use Doctrine\Common\Persistence\ObjectManager;
use Blogger\BlogBundle\Entity\User;
use Blogger\BlogBundle\Entity\Group;
class GroupEntity_Fixtures extends AbstractFixture implements OrderedFixtureInterface
{
/**
* {@inheritDoc}
*/
public function load(ObjectManager $manager)
{
$groupUser = new Group();
$groupUser->setName('GROUP_USER');
$groupUser->setRole('ROLE_USER');
$manager->persist($groupUser);
$groupAdmin = new Group();
$groupAdmin->setName('GROUP_ADMIN');
$groupAdmin->setRole('ROLE_USER,ROLE_ADMIN');
$manager->persist($groupAdmin);
$manager->flush();
$this->addReference('GROUP_USER', $groupUser);
$this->addReference('GROUP_ADMIN', $groupAdmin);
}
public function getOrder()
{
return 1;
}
}
<?php
// DataFixtures/ORM/CreateUserController_SignUpForm_UserEntity_Fixtrues.php
namespace Blogger\BlogBundle\DataFixtures\ORM;
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
use Doctrine\Common\DataFixtures\AbstractFixture;
use Doctrine\Common\Persistence\ObjectManager;
use Blogger\BlogBundle\Entity\User;
use Blogger\BlogBundle\Entity\Group;
class CreateUserController_SignUpForm_UserEntity_Fixtures extends AbstractFixture implements OrderedFixtureInterface
{
/**
* {@inheritDoc}
*/
public function load(ObjectManager $manager)
{
$groupUser2 = new Group();
$groupUser2->setName('GROUP_USER');
$groupUser2->setRole('ROLE_USER');
$manager->persist($groupUser2);
// This person represents an active (email verified) user.
$userActive = new User();
$userActive->setPassword("passwordActive");
$userActive->setEmail("[email protected]");
$userActive->setUserName("testActive");
$userActive->setPassword(crypt($userActive->getPassword(),$userActive->getSalt()));
$userActive->setEmailToken(md5(uniqid(rand(), true)));
$userActive->addGroup($groupUser2);
//$userActive->getGroups()->add($groupRepository->getGroupByName("BASIC_USER"));
// This person represents an unactive (email not verified) user.
$userUnactive = new User();
$userUnactive->setPassword("passwordUnactive");
$userUnactive->setEmail("[email protected]");
$userUnactive->setUserName("testUnactive");
$userUnactive->setPassword(crypt($userUnactive->getPassword(),$userUnactive->getSalt()));
$userUnactive->setEmailToken(md5(uniqid(rand(), true)));
// Persist objects into the database
$manager->persist($userActive);
$manager->persist($userUnactive);
$manager->flush();
}
public function getOrder()
{
return 2;
}
}
समूह के लिए कोड इकाई उपयोगकर्ता स्थिरता के लिए कोड:
/**
* @ORM\ManyToMany(targetEntity="User", inversedBy="groups")
*/
private $users;
उपयोगकर्ता इकाई के लिए कोड:
/**
* @ORM\ManyToMany(targetEntity="Group", mappedBy="users")
*/
protected $groups;
जोड़ा समूह methos:
/**
* Add groups
*
* @param \Blogger\BlogBundle\Entity\groups $groups
* @return User
*/
public function addGroup(\Blogger\BlogBundle\Entity\groups $groups)
{
$this->groups[] = $groups;
return $this;
}
" ब्लॉगर \ BlogBundle \ Entity \ grou पीएस "जो अजीब लग रहा है, क्या आपके एड ग्रुप विधि में टाइप संकेत सही है? – wgcrouch
एक और, क्या आप addGroup() विधि के लिए कोड पोस्ट कर सकते हैं? ऐसा लगता है कि आपके पास टाइपो हो सकता है – wgcrouch
किस प्रकार का संकेत है? उस के लिए एनोटेशन होगा: /** * @ORM \ ManyToMany (targetEntity = "उपयोगकर्ता", inversedBy = "समूह") */ –