2017-07-31 16 views
0

私はこのFOSUserBundleを自分のプロジェクトにインストールするためのチュートリアルに従っています。 私はこのフランス語のチュートリアルから私の情報を得ました。だから私はそれらのコマンドをしたhttp://www.tutodidacte.com/symfony2-installer-fosuserbundleFOS UserBundleをインストールしてください

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

は、それから私はAppKernelの新しいバンドル、

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

しかし、それをやった後に、作成しました新しいUserBundleが表示されます.FOSUserBundleはここにはありません。

私はそれをファイルに書き込んでいます。私はエンティティを作成しようとした後、何かが明らかに間違っているのを見ることができます。

このプレゼンテーションは申し訳ありません...正しく印刷することができませんでした。

php bin/console generate:doctrine:entity

致命的なエラー: 'パスの子ノード "db_driverという" " fos_user" に設定する必要があります' キャッチされない例外 'のSymfony \コンポーネント\ CONFIG \定義\例外I nvalidConfigurationException \' メッセージとはCで:\ WAMP \ WWW \王国\ベンダ\ symfonyの\ symfonyの\ SRC \ symfonyの\コンポーネント\ CONFIG \定義\ ArrayNode.php:240 スタックトレース:

0 C:\ WAMP \ WWW \王国\ベンダー\ symfonyの\ symfonyの\ SRC \ symfonyの\コンポーネント\ Configを\ Defin

itionの\のBaseNode.php(303):symfonyの\コンポーネント\ CONFIG \定義\ ArrayNode-> 値(配列)

1を最終決定symfony \ Component \ Config \ Defin

ition \ Processor.php(37):Symfony \ Component \ Confi(C:\ Windows \ Kingdom \ vendor \ symfony \グラム\定義\ BaseNode->( アレイ)を確定

2 C:\ WAMP \ WWW \王国\ベンダ\ symfonyの\ symfonyの\ SRC \ symfonyの\コンポーネント\ Configを\ Defin

ition \ Processor.php (Symfony \ Component \ Config \ Definition \ ArrayNode)、アレイ)

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

OSUserExtension.php(51):Symfony \ Component \ Config \ Definition \ Processor-> processC onfigur in C:\ wmp \ www \キングダム\ベンダー\ symfony \ symfony \ src \ Symfony \ Component \ Conf ig \ Definition \ ArrayNode.php on line 240

+0

試みは、正しくconfig.ymlを設定してください –

+0

方法config.ymlが正しく設定されている場合、私は知っていますか? – Minirock

答えて

0

あなたが正しく設定されていないようです。ここでの手順に従ってください: http://symfony.com/doc/current/bundles/FOSUserBundle/index.html#step-5-configure-the-fosuserbundle

EDIT:もう一度あなたの質問を読んだ後、あなたのように、適切にバンドルをロードしていないようで、あなたのケースで http://symfony.com/doc/current/bundles/FOSUserBundle/index.html

を、あなたが、少なくともこれを欠けているようです http://symfony.com/doc/master/bundles/FOSUserBundle/index.html#step-2-enable-the-bundle

+0

しかし、設定は言わずに、手順1の後に、私のアプリケーション内にFOSUserBundleフォルダを見つけることができるはずです。実際に私はそれを見ることができないので。だから私はステップ1が私のためにうまくいくのか分からない。 私は家に帰るとすぐに別の時間をチェックします。ありがとう。 – Minirock

+0

はい、正しい場所を確認しているかどうかわかりません。ベンダフォルダ内にある場合は、vendor/friendsofsymfony/user-bundleにあります。 [OK]を、私は何か間違ったことをやっているかもしれません – Strnm

+0

、 新しいFOS \ UserBundle \ FOSUserBundleを():それは追加して、あなたのAppKernel.phpでそれをロードするのはあなた次第です。私は今夜​​それを試してみると、私はより多くの問題があればここに戻ってきます。 – Minirock

1

インストール後AppKernel.phpファイルでバンドルを有効にする必要があります。 https://www.cloudways.com/blog/implement-fosuserbundle-in-symfony-3-1/

インストール::AppKernel.phpにバンドルを有効にする

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

をFOSUserBundleが、それは私がそれにシンプルで簡単なガイドを書かれている、正しく動作するようにコンフィギュレーションのビットを必要とします

FOSUserBundleをインストールしたら、プロジェクトで有効にする必要があります。 app/config/AppKernel.phpに移動し、強調表示された行をバンドル配列に追加します。

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

あなたは:)

設定の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ファイル上に作成しているとしてUserエンティティを作成し、ユーザーエンティティ

を作成します。設定で

FOSUserBundleのルートファイルに

のインポートconfig.ymlに

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

をこの設定を追加輸入ルートにこれを追加のrouting.yml

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

データベーススキーマの更新

最後に、データベーススキーマを更新してデータベースにテーブルを作成します。今のアプリのURLに移動し

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

を使用すると、ログインページが表示されます、それに/ログインを追加します。それは、再び働くここにあなたのconfig.ymlファイルを投稿しようとしていない場合

enter image description here

+0

問題は...ユーザーバンドルを作成するとすぐに、この問題が発生します: "パス" fos_user "の子ノード" db_driver "が" "に設定されていなければならないので、まずconfig.ymlを更新しようとしました結果は同じです。これはすべてのコマンドで発生しますが、私もキャッシュをクリアしようとしています。このエラーがあります:( – Minirock

+0

'rm -fr var/cache/*'コマンドでsymfonyキャッシュをクリアしてから、再度バンドルを作成してみてください –

+0

今はキャッシュからではありませんでした.iはconfig.yml内のfos_userの中にab_from_emailを追加しなければなりませんでした。理由はわかりませんが、今はうまくいきます。 もう1つ、バンドルや私はちょうど私の自分を作成するためにそのビューを拡張することができますか?今は私はデザインとフィールド名が私のものとは違うので。 – Minirock

関連する問題