私たちのプロジェクトはSymfony 2.1から2.3に、そして今は2.7に移行されました。 FOSUserBundleは2.1で独自のプロパティを作成しましたが、それ以降のエディションでは作成しません。拡張されたFOSUserBundleベースエンティティを作成していません
php app/console doctrine:schema:updateは、実際には既存のusername、usernameCanonicalなどのフィールドを削除するコマンドを実行します。形で私たちのログを使用してログインしようとしたとき
はまた、我々が得る:
"exception":"[object] (Symfony\\Component\\Security\\Core\\Exception\\AuthenticationServiceException(code: 0): Unrecognized field: usernameCanonical at .../vendor/symfony/symfony/src/Symfony/Component/Security/Core/Authentication/Provider/DaoAuthenticationProvider.php:94
システムが我々の拡張ベースのユーザーを伴うFOSUserBundle実体の知識を持たない表示されます。
拡張ユーザークラスをテストとして既定値に減らしても、同じ問題が発生します。ここでは、現在のコードと構成は次のとおりです。
config.yml
orm:
#default_entity_manager: ~
auto_generate_proxy_classes: %kernel.debug%
auto_mapping: true
result_cache_driver:
type: memcached
host: 127.0.0.1
port: 11211
instance_class: Memcached
metadata_cache_driver:
type: memcached
host: 127.0.0.1
port: 11211
instance_class: Memcached
query_cache_driver:
type: memcached
host: 127.0.0.1
port: 11211
instance_class: Memcached
filters:
softdeleteable:
class: Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter
enabled: true
mappings:
FOSUserBundle: ~
fos_user:
db_driver: orm
firewall_name: main
user_class: ODR\OpenRepository\UserBundle\Entity\User
change_password:
form:
type: odr_user_change_password
のsecurity.yml
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
# Symfony >= 2.8
# csrf_token_generator: security.csrf.token_manager
# Symfony < 2.8
csrf_provider: form.csrf_provider
remember_me:
key: asdlkjf2ji802fiuaskdjokjhafsdjsfdjhjh
lifetime: 1209600
path: /
domain: ~
ユーザークラス[SRC/ODR/OpenRepository/UserBundle /エンティティ/ User.php]
namespace ODR\OpenRepository\UserBundle\Entity;
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
public function __construct()
{
parent::__construct();
// your own logic
}
}
実行:
php app/console doctrine:mapping:info
には、マッピングされているFOSユーザーエンティティまたはグループエンティティは表示されません。それは私たちのユーザークラスを示していますが、拡張機能は基本プロパティをプルするようには見えません。
ありがとうございました。
はい - すべてのルーティングはルーティング設定にも含まれています。私たちは明示的に他の4つの経路をロードするように、「登録」経路を使用しません。 「all.xml」ルート経由でロードする場合でも、システムは同じ問題を示します。 –