Intereting Posts
Имеет ли php эквивалент виртуальной или виртуальной памяти python? Поиск определенных расширений файлов в папке / каталоге (PHP) Флажок внутри цикла php foreach для удаления всех проверок Установите cookie с JS, прочитайте с проблемой PHP Можно ли защитить от загрузки видео с сайта? symfony2 + doctrine2 @ postgresql, устанавливающий схему Пример внедрения PHP / MySQL codeigniter .htaccess код не загружается css, изображения Правильно переопределить функцию WooCommerce WC_Price () в чистом виде Я должен ДОЛЖЕН обновить свой PHP-SDK от 3.2 до 4.0 после 30 апреля 2015 года (истекает срок действия графика API 1.0)? могу ли я использовать PHP-SDK 3.2 с Graph API 2.0? Получение недопустимых символов в методе get_browser () выполняется в php PHP-декодирование JSON POST Предупреждение: trim () ожидает, что параметр 1 будет строкой, массив указан в wp-includes / class-phpmailer.php в строке 973 Получить только объявленные методы класса в PHP Возможно ли запустить Coldfusion & PHP на одном сервере и на веб-сайте?

FOS / UserBundle: нераспознанное поле: имя пользователяCanonical

Я очень новичок в Symfony 2.0 и FOS / UserBundle. Я устанавливаю его в свой проект, и когда я пытаюсь войти или зарегистрировать нового пользователя, я получаю следующие ошибки:

Нераспознанное поле: имя пользователяCanonical

Я понятия не имею, что это значит? Я поставил свои коды:

файл app / config / security.yml

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 

Пользовательский объект, расположенный в 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(); } } 

Пожалуйста, помогите мне?

EDITED: Когда я пытаюсь зарегистрировать нового пользователя, я получаю следующие ошибки:

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

Добавлен мой 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 

В моем случае автоматическое сопоставление не работает, потому что мне нужно расширить объект (а не модель)

 use FOS\UserBundle\Model\User as BaseUser; 

черепать

 use FOS\UserBundle\Entity\User as BaseUser; 

Возможно, Symfony 2 вообще не может прочитать отображение.

В вашем приложении / config / config.yml найдите конфигурацию доктрины.

 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: ~ 

Это все, что мне нужно.

В моем случае, в моем классе пользователя, я использовал

 use FOS\UserBundle\Document\User as BaseUser; 

вместо

 use FOS\UserBundle\Entity\User as BaseUser; 

Вы пытаетесь использовать пакет с установкой Symfony2 Beta1? FriendsOfSymfony UserBundle разрабатывается против репозитория Symbony с кратковременным выпуском, и если вы используете бета-версию с Symfony.com , которая довольно устарела по сравнению с текущей фиксацией развития, то, несомненно, что-то не будет работать с UserBundle.

Вы можете либо дождаться стабильной версии как Symfony, так и FoSUserBundle, или если вы чувствуете смелость, вы можете сохранить свою рабочую копию в актуальном состоянии с помощью хранилища Symfony GitHub, найденного здесь , что позволит вам использовать FoSUserBundle в для которой он предназначен.

В моем случае мне пришлось обновить доктрину / orm и doctrine / doctrine-bundle, потому что по какой-то причине поля в базовом классе User не были добавлены в схему.