![](/img/trans.png)
[英]Symfony2: FOSUserBundle - SQLSTATE[23505]: Unique violation: during user registration
[英]Symfony 2 and FOSUserBundle - add information from path to User during registration
我有一個使用FOSUserBundle的Symfony 2應用程序。 該應用程序將由許多不同組織的成員使用,我希望他們能夠訪問組織特定的URL進行注冊,例如http://www.myapp.com/[organisation_name]/register
。 如何讓FOSUserBundle處理注冊,又如何將[organisation_name]
添加到它創建的用戶記錄中?
我的研究表明,我可能需要加入FOSUserBundle事件( REGISTRATION_SUCCESS
嗎?),但是我不確定該事件的確切機制或從URL獲取信息的確切機制。
您可以使用GET
屬性,如下所示:
http://www.myapp.com/register?org=acme
在這種情況下,事件訂閱者將如下所示:
namespace Acme\DemoBundle\Event;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use FOS\UserBundle\Event\FormEvent;
class EventSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents()
{
return array(
'fos_user.registration.success' => array('onRegistrationSuccess', 10),
);
}
public function onRegistrationSuccess(FormEvent $event)
{
$user = $event->getUser();
$org = $event->getRequest()->query->get('org');
$user->setOrganisation($org);
}
}
並且不要忘記在services.yml
注冊您的訂戶:
acme_demo.event_subscriber:
class: Acme\DemoBundle\Event\EventSubscriber
tags:
- { name: kernel.event_subscriber }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.