2017-07-31 54 views
0

我正在按照教程将这个FOSUserBundle安装到我的项目中。 我得到了我的信息,从这个法语教程:http://www.tutodidacte.com/symfony2-installer-fosuserbundle安装FOS UserBundle

所以我做了这些命令:

php ./composer.phar require friendsofsymfony/user-bundle "[email protected]" 
php composer.phar update 

然后,我创建了一个新包,

php bin/console generate:bundle 
Bundle Namespace : Kingdom/UserBundle 

但这样做,在AppKernel后我可以看到新的UserBundle,FOSUserBundle不在这里。

我试着自己添加它在文件中写入;但是当我尝试创建一个实体时,我们可以看到明显的错误。

对不起,下面的介绍...我没有成功打印正确。

php bin/console generate:doctrine:entity

致命错误: '子节点 “db_driver” 在路径 “ fos_user” 必须配置' 未捕获的异常 '的Symfony \分量\ CONFIG \定义\异常\我 nvalidConfigurationException' 有消息在C:\瓦帕\ WWW \英国\厂商\ symfony的\ symfony的\ SRC \的Symfony \元器件\配置\定义\ ArrayNode.php:240 堆栈跟踪:

0 C:\瓦帕\ WWW \英国\供应商\ symfony的\ symfony的\ SRC \的Symfony \元器件\配置\ Defin

银行足球比赛\ BaseNode.php(303):Symfony的\元器件\配置\定义\ ArrayNode->完成 数值(阵列)

1 C:\ wamp \ www \ Kingdom \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ Config \ Defin

ition \ Processor.php(37):Symfony \ Component \ Confi克\定义\ BaseNode->完成( 阵列)

2 C:\瓦帕\ WWW \英国\厂商\ symfony的\ symfony的\ SRC \的Symfony \元器件\配置\ Defin

银行足球比赛\ Processor.php (50):Symfony \ Component \ Config \ Definition \ Processor-> process( Object(Symfony \ Component \ Config \ Definition \ ArrayNode),Array)

3 C:\ wamp \ www \ Kingdom \ vendor \ friendsofsymfony \ user-bundle \ DependencyInjection \ F

OSUserExtension.php(51):Symfony \ Component \ Config \ Definition \ Processor-> processC onfigur in C:\ wamp \ www \ Kingdom \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ Conf ig \ Definition \ ArrayNode.php on line 240

+0

尝试正确配置config.yml,如果它不工作,再尝试在这里发表您config.yml文件请 –

+0

我怎么知道,如果config.yml配置是否正确? – Minirock

回答

0

看来您还没有正确配置捆绑包。这里遵循的步骤: http://symfony.com/doc/current/bundles/FOSUserBundle/index.html

在你的情况,似乎你缺少至少这样的: http://symfony.com/doc/current/bundles/FOSUserBundle/index.html#step-5-configure-the-fosuserbundle

编辑:重新阅读你的问题后,似乎你不正确加载捆绑,如描述在这里: http://symfony.com/doc/master/bundles/FOSUserBundle/index.html#step-2-enable-the-bundle

+0

好的,但没有说到设置,在步骤1之后,我应该能够在我的应用程序中找到FOSUserBundle文件夹,我认为不是?因为实际上我看不到它。所以我不确定第一步适合我。 我一回家就会再检查一次。谢谢。 – Minirock

+0

是的,但不知道你是否在正确的地方看。如果应该位于vendor/friendsofsymfony/user-bundle中的供应商文件夹中。这取决于你加载它在你的AppKernel.php,加入: 新的FOS \ UserBundle \ FOSUserBundle(), – Strnm

+0

好吧,所以我可能一直在做错了什么。我今晚会尝试,如果我有更多问题,我会回到这里。 – Minirock

1

安装后需要在AppKernel.php文件中启用一个包。 FOSUserBundle需要一点配置,使其正常工作,我已经写了一个简单易用的引导就可以了: https://www.cloudways.com/blog/implement-fosuserbundle-in-symfony-3-1/

安装:

composer require friendsofsymfony/user-bundle "[email protected]" 

在AppKernel.php启用捆绑

安装FOSUserBundle后,您必须在项目中启用它。转到app/config/AppKernel.php并在bundles数组中添加突出显示的行。

$bundles = [ 
... 
new FOS\UserBundle\FOSUserBundle(), 
] 

创建用户实体

创建为你创建上面:)

User实体

配置Security.yml在文件

security: 
    encoders: 
     FOS\UserBundle\Model\UserInterface: bcrypt 

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: ROLE_ADMIN 

    providers: 
     fos_userbundle: 
      id: fos_user.user_provider.username 

    firewalls: 
     main: 
      pattern: ^/ 
      form_login: 
       provider: fos_userbundle 
       csrf_token_generator: security.csrf.token_manager 
       # if you are using Symfony < 2.8, use the following config instead: 
       # csrf_provider: form.csrf_provider 

      logout:  true 
      anonymous: true 

    access_control: 
     - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/admin/, role: ROLE_ADMIN } 

配置FOSUserBundle配置

添加此配置在config.yml

fos_user: 
    db_driver: orm 
    firewall_name: main 
    user_class: AppBundle\Entity\User 

导入FOSUserBundle的路线文件

添加此导入航线的routing.yml

fos_user: 
    resource: "@FOSUserBundle/Resources/config/routing/all.xml" 

更新数据库模式

最后一步是更新数据库模式以在数据库中创建表。

php bin/console doctrine:schema:update --force 

现在移动到应用程序URL添加/登录在里面,你会看到登录页面。

enter image description here

+0

事情是...一旦我想创建用户包,我有这个问题:“路径”fos_user“上的子节点”db_driver“必须配置为” 所以我试图更新config.yml第一个但结果是一样的。这发生在每一个命令,我试图清除缓存,以及我有这个错误:( – Minirock

+0

清除symfony缓存与此命令'rm -fr var/cache/*'然后尝试再次创建您的包。 –

+0

它的工作原理现在,但它不是从缓存..我必须在config.yml fos_user内添加一个abject from_email。不知道为什么,但现在它工作正常。 还有一件事,我必须使用从登录视图该捆绑或可能是我可以扩展该视图来创建我自己的?因为现在我没有设计和字段名称是从我的不同。 – Minirock

相关问题