Php 从join OneToOne Symfony2/2更新表中的字段
我对Symfony2中的Doctrine2和两个相关实体有问题 我有一个班Php 从join OneToOne Symfony2/2更新表中的字段,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我对Symfony2中的Doctrine2和两个相关实体有问题 我有一个班 class Users { /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @var string * * @ORM\Column(name="username", type="stri
class Users
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="username", type="string", length=50)
*/
private $username;
/**
* @var string
*
* @ORM\Column(name="password", type="string", length=50)
*/
private $password;
/**
* @var boolean
*
* @ORM\Column(name="type", type="boolean")
*/
private $type;
/**
* @var string
*
* @ORM\Column(name="email", type="string", length=255)
*/
private $email;
/**
* @var string
*
* @ORM\Column(name="first_name", type="string", length=100)
*/
private $firstName;
/**
* @var string
*
* @ORM\Column(name="last_name", type="string", length=100)
*/
private $lastName;
/**
* @var string
*
* @ORM\Column(name="tel", type="string", length=255)
*/
private $tel;
/**
* @var string
*
* @ORM\Column(name="url_img", type="string", length=255)
*/
private $urlImg;
/**
* @var string
*
* @ORM\Column(name="company", type="string", length=255)
*/
private $company;
/**
* @ORM\OneToOne(targetEntity="Providers", mappedBy="userId", cascade={"persist"})
*/
protected $provider;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set username
*
* @param string $username
* @return Users
*/
public function setUsername($username)
{
$this->username = $username;
return $this;
}
/**
* Get username
*
* @return string
*/
public function getUsername()
{
return $this->username;
}
/**
* Set password
*
* @param string $password
* @return Users
*/
public function setPassword($password)
{
$this->password = $password;
return $this;
}
/**
* Get password
*
* @return string
*/
public function getPassword()
{
return $this->password;
}
/**
* Set type
*
* @param boolean $type
* @return Users
*/
public function setType($type)
{
$this->type = $type;
return $this;
}
/**
* Get type
*
* @return boolean
*/
public function getType()
{
return $this->type;
}
/**
* Set idPrest
*
* @param integer $idPrest
* @return Users
*/
public function setIdPrest($idPrest)
{
$this->idPrest = $idPrest;
return $this;
}
/**
* Get idPrest
*
* @return integer
*/
public function getIdPrest()
{
return $this->idPrest;
}
/**
* Set idEmbaucher
*
* @param integer $idEmbaucher
* @return Users
*/
public function setIdEmbaucher($idEmbaucher)
{
$this->idEmbaucher = $idEmbaucher;
return $this;
}
/**
* Get idEmbaucher
*
* @return integer
*/
public function getIdEmbaucher()
{
return $this->idEmbaucher;
}
/**
* Set email
*
* @param string $email
* @return Users
*/
public function setEmail($email)
{
$this->email = $email;
return $this;
}
/**
* Get email
*
* @return string
*/
public function getEmail()
{
return $this->email;
}
/**
* Set firstName
*
* @param string $firstName
* @return Users
*/
public function setFirstName($firstName)
{
$this->firstName = $firstName;
return $this;
}
/**
* Get firstName
*
* @return string
*/
public function getFirstName()
{
return $this->firstName;
}
/**
* Set lastName
*
* @param string $lastName
* @return Users
*/
public function setLastName($lastName)
{
$this->lastName = $lastName;
return $this;
}
/**
* Get lastName
*
* @return string
*/
public function getLastName()
{
return $this->lastName;
}
/**
* Set tel
*
* @param string $tel
* @return Users
*/
public function setTel($tel)
{
$this->tel = $tel;
return $this;
}
/**
* Get tel
*
* @return string
*/
public function getTel()
{
return $this->tel;
}
/**
* Set urlImg
*
* @param string $urlImg
* @return Users
*/
public function setUrlImg($urlImg)
{
$this->urlImg = $urlImg;
return $this;
}
/**
* Get urlImg
*
* @return string
*/
public function getUrlImg()
{
return $this->urlImg;
}
/**
* Set company
*
* @param string $company
* @return Users
*/
public function setCompany($company)
{
$this->company = $company;
return $this;
}
/**
* Get company
*
* @return string
*/
public function getCompany()
{
return $this->company;
}
/**
* Set provider
*
* @param Providers $provider
* @return Users
*/
public function setProvider($provider = null)
{
$this->provider = $provider;
return $this;
}
/**
* Get provider
*
* @return Providers
*/
public function getProvider()
{
return $this->provider;
}
}
与OneTONE上的类提供程序相关(继承)
/**
*设置用户ID
*
*@param\lebonindessservices\MainBundle\Entity\Users$userId
*@返回提供者
*/
公共函数setUserId($userId=null)
{
$this->userId=$userId
return $this;
}
/**
* Get userId
*
* @return \leBonCoinDesServices\MainBundle\Entity\Users
*/
public function getUserId()
{
return $this->userId;
}
}
我只想获取从关系中创建的字段user\u id,以便在创建用户时能够获取此字段的id并将其提供给user\u id字段
当我测试控制器以创建用户和提供者时:
public function newUserAction()
{
$user = new Users();
$user->setUsername("gokusan");
$user->setPassword("test");
$user->setType("p");
$user->setEmail("test@msn.com");
$user->setFirstName("KHALIL");
$user->setLastName("Ahmed");
$user->setTel("0142021148");
$user->setUrlImg("img/test/");
$user->setCompany("Push&Pull");
$this->getDoctrine()->getEntityManager()->persist($user);
$this->getDoctrine()->getEntityManager()->flush();
$provider = new Providers();
$id = $user->getId();
$provider->setUserId($id);
$this->getDoctrine()->getEntityManager()->persist($provider);
$this->getDoctrine()->getEntityManager()->flush();
die("User Added");
}
这让我犯了一个错误:
警告:spl_object_hash()要求参数1为object,整数以F:\Programs Files\Program Files\wamp\www\LebonIndessServices\vendor\doctrine\orm\lib\doctrine\orm\UnitOfWork.php第1367行为单位要求
$userId
的类型为\lebonindessservices\MainBundle\Entity\Users
,而不是integer
类型。因此,您应该能够将Users
对象传递给$provider
等
$user = new Users();
...
$provder = new Providers();
...
$provider->setUserId($user);
$user = new Users();
...
$provder = new Providers();
...
$provider->setUserId($user);