FOS / UserBundle: Ukjent felt: usernameCanonical

stemmer
12

Jeg er veldig nytt for Symfony 2,0 og FOS / UserBundle. Jeg er installere det til mitt prosjekt, og når jeg prøver å logge inn eller registrer ny bruker får jeg følgende feil:

Ukjent felt: usernameCanonical

Jeg har ikke noen anelse om hva betyr det? Jeg satte mine koder:

app / config / security.yml fil

security:
    providers:
        fos_userbundle:
            id: fos_user.user_manager

    firewalls:
        main:
            pattern: .*
            form-login:
                provider: fos_userbundle
                login_path: /login
                use_forward: false
                check_path: /login_check
                failure_path: /not_found
            logout: true
            anonymous: true

    access_control:
        # The WDT has to be allowed to anonymous users to avoid requiring the login with the AJAX request
        - { path: ^/_wdt/, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/_profiler/, role: IS_AUTHENTICATED_ANONYMOUSLY }
        # AsseticBundle paths used when using the controller for assets
        - { path: ^/js/, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/css/, role: IS_AUTHENTICATED_ANONYMOUSLY }
        # URL of FOSUserBundle which need to be available to anonymous users
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/login_check$, role: IS_AUTHENTICATED_ANONYMOUSLY } # for the case of a failed login
        - { path: ^/user/new$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/user/check-confirmation-email$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/user/confirm/, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/user/confirmed$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/user/request-reset-password$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/user/send-resetting-email$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/user/check-resetting-email$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/user/reset-password/, role: IS_AUTHENTICATED_ANONYMOUSLY }
        # Secured part of the site
        # This config requires being logged for the whole site and having the admin role for the admin part.
        # Change these rules to adapt them to your needs
        - { path: ^/admin/, role: ROLE_ADMIN }
        - { path: ^/.*, role: ROLE_USER }

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPERADMIN:  ROLE_ADMIN

Brukerenhet lokalisert i SecurityBundle:

<?php

namespace App\SecurityBundle\Entity;

use FOS\UserBundle\Entity\User as BaseUser;

/**
 * App\SecurityBundle\Entity\User
 *
 * @orm:Table(name=fos_user)
 * @orm:Entity
 */
class User extends BaseUser
{
    /**
     * @var integer $id
     *
     * @orm:Column(name=id, type=integer)
     * @orm:Id
     * @orm:GeneratedValue(strategy=AUTO)
     */
    protected $id;

    /**
     * @orm:Column(type=string, name=username, length=70)
     */
    protected $username;    

    /**
     * @orm:Column(type=string, name=password, length=70)
     */
    protected $password;    

    /**
     * @orm:Column(type=string, name=email, length=70)
     */
    protected $email;

    public function __construct()
    {
        parent::__construct();
    }
}

Kan du hjelpe meg?

Sist endret: Når jeg prøver å registrere ny bruker jeg komme under feil:

The App\SecurityBundle\Entity\User class metadata does not have any usernameCanonical field or association mapping.

Lagt min config.yml:

imports:
    - { resource: parameters.ini }
    - { resource: security.yml }

framework:
    secret:        %secret%
    charset:       UTF-8
    error_handler: null
    csrf_protection:
        enabled: true
    router:        { resource: %kernel.root_dir%/config/routing.yml }
    validation:    { enabled: true, annotations: true }
    templating:    { engines: ['twig'] } #assets_version: SomeVersionScheme
    session:
        default_locale: %locale%
        lifetime:       3600
        auto_start:     true

# Twig Configuration
twig:
    debug:            %kernel.debug%
    strict_variables: %kernel.debug%

# Assetic Configuration
assetic:
    debug:          %kernel.debug%
    use_controller: false
    filters:
        cssrewrite: ~
        # closure:
        #     jar: %kernel.root_dir%/java/compiler.jar
        # yui_css:
        #     jar: %kernel.root_dir%/java/yuicompressor-2.4.2.jar

fos_user:
    db_driver: orm
    firewall_name: main
    class:
        model:
            user: App\SecurityBundle\Entity\User

# Doctrine Configuration
doctrine:
    dbal:
        driver:   %database_driver%
        host:     %database_host%
        dbname:   %database_name%
        user:     %database_user%
        password: %database_password%
    orm:
        auto_generate_proxy_classes: %kernel.debug%
        default_entity_manager: default
        entity_managers:
            default:
                mappings:
                    FOSUserBundle: ~
                    AppSecurityBundle: { type: annotation, dir: Entity/ }

# Swiftmailer Configuration
swiftmailer:
    transport: %mailer_transport%
    host:      %mailer_host%
    username:  %mailer_user%
    password:  %mailer_password%

jms_security_extra:
    secure_controllers:  true
    secure_all_services: false
Publisert på 14/05/2011 klokken 01:51
kilden bruker
På andre språk...                            


5 svar

stemmer
20

I mitt tilfelle auto kartlegging ikke fungerer fordi jeg trengte å utvide enhet (ikke modell)

use FOS\UserBundle\Model\User as BaseUser;

chage til

use FOS\UserBundle\Entity\User as BaseUser;
Svarte 05/08/2013 kl. 08:49
kilden bruker

stemmer
20

Kanskje Symfony 2 kan ikke lese kartlegging i det hele tatt.

Til din app / config / config.yml lete etter læren konfigurasjon.

doctrine:
    dbal:
        driver:   %database_driver%
        host:     %database_host%
        port:     %database_port%
        dbname:   %database_name%
        user:     %database_user%
        password: %database_password%
        charset:  UTF8

    orm:
        auto_generate_proxy_classes: %kernel.debug%
        entity_managers:
            default:
                mappings:
                    ApplicationSonataUserBundle: ~
                    SonataUserBundle: ~
                    FOSUserBundle: ~

Det var alt jeg trengte.

Svarte 20/12/2011 kl. 17:44
kilden bruker

stemmer
5

I mitt tilfelle, i min bruker klasse, var jeg bruker

use FOS\UserBundle\Document\User as BaseUser;

i stedet for

use FOS\UserBundle\Entity\User as BaseUser;
Svarte 19/10/2011 kl. 17:28
kilden bruker

stemmer
1

Prøver du å bruke bunt med Symfony2 Beta1 installere? Den FriendsOfSymfony UserBundle er utviklet mot blødning kanten oppbevaringssted for Symfony, og hvis du bruker beta-utgaven fra Symfony.com , som er ganske utdatert i forhold til dagens utvikling begår, utvilsomt ting vil ikke fungere etter hensikten med UserBundle.

Du kan enten vente på en stabil utgave av både Symfony og FoSUserBundle, eller hvis du føler deg modig, kan du holde arbeidskopien oppdatert med Symfony GitHub repository funnet her , som vil tillate deg å bruke FoSUserBundle i omgivelser for hvilke den er beregnet.

Svarte 15/05/2011 kl. 06:59
kilden bruker

stemmer
0

I mitt tilfelle måtte jeg oppgradere doktrine / orm og lære / lære-bundle fordi en eller annen grunn feltene i bunnen Bruker klassen ble ikke lagt til i skjemaet.

Svarte 16/04/2016 kl. 07:40
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more