2017-07-31 55 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

相關問題