我需要您的帮助才能在 FOSUSerBundle 的注册表单中添加一些字段。我想本地化一个用户并将他的纬度/经度保存在注册表中。我在我的用户实体和我的本地化实体之间创建了 oneToOne 关系,但我看不到我可以将代码放在哪里来设置用户在注册阶段的纬度和经度。
我是否必须覆盖注册控制器或某些事件?我只是看不到我的代码放在哪里...
首先,这里的文档没有针对新的签名方法进行更新:https ://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/overriding_controllers.md
本教程还可以,但我看不到如何将它与 oneToOne 字段一起使用...: http ://www.idci-consulting.fr/fosuserbundle-comment-gerer-les-utilisateurs-avec-symfony2/
事实上,我在用于 FOSUserBundle 的 User 实体中添加了我的关系:
<?php
namespace rs\UserBundle\Entity;
use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
use FOS\MessageBundle\Model\ParticipantInterface;
/**
* @ORM\Entity
* @ORM\Table(name="user")
*/
class User extends BaseUser implements ParticipantInterface
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\OneToOne(targetEntity="rs\UserBundle\Entity\Localisation", cascade={"persist"})
*/
protected $localisation;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set localisation
*
* @param \rs\UserBundle\Entity\Localisation $localisation
* @return User
*/
public function setLocalisation(\rs\UserBundle\Entity\Localisation $localisation = null)
{
$this->localisation = $localisation;
return $this;
}
/**
* Get localisation
*
* @return \rs\UserBundle\Entity\Localisation
*/
public function getLocalisation()
{
return $this->localisation;
}
}
这是我的本地化实体:
<?php
namespace rs\UserBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Localisation
*
* @ORM\Table()
* @ORM\Entity
*/
class Localisation
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var float
*
* @ORM\Column(name="latitude", type="decimal")
*/
private $latitude;
/**
* @var float
*
* @ORM\Column(name="longitude", type="decimal")
*/
private $longitude;
/**
* @var integer
*
* @ORM\OneToOne(targetEntity="rs\UserBundle\Entity\Clan", cascade={"persist"})
*/
private $clan;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set latitude
*
* @param float $latitude
* @return Localisation
*/
public function setLatitude($latitude)
{
$this->latitude = $latitude;
return $this;
}
/**
* Get latitude
*
* @return float
*/
public function getLatitude()
{
return $this->latitude;
}
/**
* Set longitude
*
* @param float $longitude
* @return Localisation
*/
public function setLongitude($longitude)
{
$this->longitude = $longitude;
return $this;
}
/**
* Get longitude
*
* @return float
*/
public function getLongitude()
{
return $this->longitude;
}
/**
* Set clan
*
* @param \rs\UserBundle\Entity\Clan $clan
* @return Localisation
*/
public function setClan(\robStorm\UserBundle\Entity\Clan $clan = null)
{
$this->clan = $clan;
return $this;
}
/**
* Get clan
*
* @return \rs\UserBundle\Entity\Clan
*/
public function getClan()
{
return $this->clan;
}
}
谢谢 ;)