嗨,我有自己的User班级,继承FOS\UserBundle\Entity\User.另外我写了自己的注册例程.现在我遇到的问题是表单不能确保用户名是唯一的.我总是得到SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'myusername' for key 'UNIQ_2DA1797792FC23A8'
我尝试添加@UniqueEntity("email")文档[1]中所述的注释,但没有任何影响.
有人知道可能出错了什么?
[1] http://symfony.com/doc/current/reference/constraints/UniqueEntity.html
我有一个FosUserBundle服务,我需要转换为yml格式.我怎么能这样做是有翻斗车转换器还是其他什么?
这在yml中看起来如何?
<service id="fos_user.mailer.twig_swift" class="FOS\UserBundle\Mailer\TwigSwiftMailer" public="false">
<argument type="service" id="mailer" />
<argument type="service" id="router" />
<argument type="service" id="twig" />
<argument type="collection">
<argument key="template" type="collection">
<argument key="confirmation">%fos_user.registration.confirmation.template%</argument>
<argument key="resetting">%fos_user.resetting.email.template%</argument>
</argument>
<argument key="from_email" type="collection">
<argument key="confirmation">%fos_user.registration.confirmation.from_email%</argument>
<argument key="resetting">%fos_user.resetting.email.from_email%</argument>
</argument>
</argument>
</service>
Run Code Online (Sandbox Code Playgroud)
我试图使用Yml转储器,但这只是给我序列化的对象:
$cs = new ContainerBuilder();
$loader1 = new Loader\XmlFileLoader($cs, new FileLocator(__DIR__ . '/../../../../vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Resources/config'));
$loader1->load('mailer.xml');
$dumper = new \Symfony\Component\Yaml\Dumper();
file_put_contents(__DIR__ . '/test2.yml', $dumper->dump($cs));
Run Code Online (Sandbox Code Playgroud)
任何提示将非常感激.提前致谢.
我正在使用FOSUserBundle进行身份验证和角色.对于管理员面板,我使用的是SonataAdminBundle.
FOSUserBundle Version 2.0.dev(支持事件监听器).
当我尝试安装SonataUserBundle时,它只接受<= 1.3版本的FOSUserBundle(没有事件监听器)
我需要FOSUserBundle和事件监听器.
有谁知道如何使用FOSUserBundle提供安全性(对于管理员和客户端面板)?
Am trying to use the FOSOAuthServerBundle but am having a crash problem, the crash message is :
PHP Fatal error: Declaration of MP\OAuthBundle\Entity\AccessToken::setUser() must be compatible with that of FOS\OAuthServerBundle\Model\TokenInterface::setUser() in /home/bitnami..../OAuthBundle/Entity/AccessToken.php on line 13
Run Code Online (Sandbox Code Playgroud)
AccessToken.class:
<?php
namespace MP\OAuthBundle\Entity;
use FOS\OAuthServerBundle\Entity\AccessToken as BaseAccessToken;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="oauth_access_tokens")
*/
class AccessToken extends BaseAccessToken
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\ManyToOne(targetEntity="Client")
* @ORM\JoinColumn(nullable=false)
*/
protected $client;
/**
* @ORM\ManyToOne(targetEntity="\MP\UserBundle\Entity\User")
*/ …Run Code Online (Sandbox Code Playgroud)
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
use FR3D\LdapBundle\Model\LdapUserInterface;
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser implements LdapUserInterface
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
private $dn;
/**
* the constructor
*/
public function __construct() {
parent::__construct();
// your own logic
}
/**
* {@inheritDoc}
*/
public function getDn() {
return $this->dn;
}
/**
* {@inheritDoc}
*/
public function setDn($dn) {
$this->dn …Run Code Online (Sandbox Code Playgroud) 我尝试从CategoryType表单设置字段"author"的值.我希望它是来自使用FOS包登录的当前用户的用户ID.
我的CategoryType表单:
namespace My\CategoryBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class CategoryType extends AbstractType
{
private $userId;
public function __construct(array $userId)
{
$this->userId = $userId;
}
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title')
->add('author')
->add('content')
;
}
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'My\CategoryBundle\Entity\Category',
'auteur' => $this->userId
));
}
/**
* @return string
*/
public function getName()
{
return 'my_categorybundle_category'; …Run Code Online (Sandbox Code Playgroud) 我正在使用Symfony2进行Web项目,我使用Sonata Admin作为管理面板,每件事情都运行正常但我想要做的是,在奏鸣曲管理员的仪表板菜单上,我需要显示隐藏一些菜单依赖于管理员角色,任何人之前做过这个或知道如何做到这一点?我试图使用角色的配置,但当我与ROELE不同的ROLE_SONATA_ADMIN连接时,顶级菜单不显示,
- { path: ^/admin, role: [ROLE_ADMIN, ROLE_SONATA_ADMIN,ROLE_ADMIN_NEWS] }
Run Code Online (Sandbox Code Playgroud)
谢谢
symfony fosuserbundle symfony-sonata sonata-admin symfony-2.3
我正在使用FOSUserBundle.我已经使用其他类变量实现了自己的用户实体.注册,登录和丢失的密码正在按预期工作.:-)
我需要为密码验证添加其他要求.我在Symfony文档中找到了一篇Symfony文章.本文介绍如何创建验证方法并使用Callback约束在validation.xml文件中引用它.我已经实现了回调并更改了validation.xml,所有内容都适用于注册.
我还没想到的是如何通过丢失的密码链接或更改密码页面来更改密码.
建议和文档指针将非常受欢迎.
提前致谢.
它工作了一段时间,但现在由于某种原因它产生了异常.我有自定义用户实体,它扩展了FOS用户:
namespace AppBundle\Entity;
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="AppBundle\Repository\UserRepository")
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
...
}
Run Code Online (Sandbox Code Playgroud)
我的自定义类中没有setSalt().正如我在转储SQL查询中看到的那样,其他非自定义字段(email_canonical,enabled,password,...)设置正确.我还能检查什么?
UPDATE
我做了作曲家更新.这是我的composer.json
"require": {
"php": ">=5.5.9",
"symfony/symfony": "3.2.*",
"doctrine/orm": "^2.5",
"doctrine/doctrine-bundle": "^1.6",
"doctrine/doctrine-cache-bundle": "^1.2",
"symfony/swiftmailer-bundle": "^2.3",
"symfony/monolog-bundle": "^2.8",
"symfony/polyfill-apcu": "^1.0",
"sensio/distribution-bundle": "^5.0",
"sensio/framework-extra-bundle": "^3.0.2",
"incenteev/composer-parameter-handler": "^2.0",
"friendsofsymfony/user-bundle": "~2.0@dev",
"hwi/oauth-bundle": "^0.5.1",
"twig/extensions": "^1.4"
},
Run Code Online (Sandbox Code Playgroud) 在官方文档中说,这是第一步
$ composer require friendsofsymfony/user-bundle "~2.0"
这给了我这个错误
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Conclusion: don't install friendsofsymfony/user-bundle v2.1.2
- Conclusion: don't install friendsofsymfony/user-bundle v2.1.1
- Conclusion: don't install friendsofsymfony/user-bundle v2.1.0
- Conclusion: don't install friendsofsymfony/user-bundle v2.0.2
- Conclusion: don't install friendsofsymfony/user-bundle v2.0.1
- Conclusion: remove paragonie/random_compat v9.99.99
- Installation request for friendsofsymfony/user-bundle ~2.0 -> satisfiable by friendsofsymfony/user-bundle[v2.0.0, …Run Code Online (Sandbox Code Playgroud) fosuserbundle ×10
symfony ×10
doctrine-orm ×2
composer-php ×1
formbuilder ×1
oauth ×1
oauth-2.0 ×1
orm ×1
php ×1
security ×1
sonata-admin ×1
symfony-2.1 ×1
symfony-2.3 ×1
symfony-3.4 ×1