私はSymfony v3.1を使用していますが、ユーザーの作成フォームを検証する際にエラーがあります。ここでSymfony:エラー:フォームの検証時にSymfony Component Security Core User UserInterface tクラスを再宣言できません。
は、スタックトレースです:
FatalErrorException in UserInterface.php line 34:
Error: Cannot redeclare class Symfony\Component\Security\Core\User\UserInterface
in UserInterface.php line 34
at Composer\Autoload\includeFile() in ClassLoader.php line 302
at ClassLoader->loadClass() in AnnotationRegistry.php line 145
at call_user_func:{/vagrant/ogam/website/htdocs/server/ogamServer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php:145}() in AnnotationRegistry.php line 145
at AnnotationRegistry::loadAnnotationClass() in DocParser.php line 447
at DocParser->classExists() in DocParser.php line 707
at DocParser->Annotation() in DocParser.php line 641
at DocParser->Annotations() in DocParser.php line 334
at DocParser->parse() in AnnotationReader.php line 257
at AnnotationReader->getMethodAnnotations() in CachedReader.php line 151
at CachedReader->getMethodAnnotations() in AnnotationLoader.php line 74
at AnnotationLoader->loadClassMetadata() in LoaderChain.php line 57
at LoaderChain->loadClassMetadata() in LazyLoadingMetadataFactory.php line 127
at LazyLoadingMetadataFactory->getMetadataFor() in RecursiveContextualValidator.php line 339
at RecursiveContextualValidator->validateObject() in RecursiveContextualValidator.php line 154
at RecursiveContextualValidator->validate() in FormValidator.php line 51
at FormValidator->validate() in RecursiveContextualValidator.php line 842
at RecursiveContextualValidator->validateInGroup() in RecursiveContextualValidator.php line 553
at RecursiveContextualValidator->validateClassNode() in RecursiveContextualValidator.php line 359
at RecursiveContextualValidator->validateObject() in RecursiveContextualValidator.php line 154
at RecursiveContextualValidator->validate() in RecursiveValidator.php line 115
at RecursiveValidator->validate() in ValidationListener.php line 55
私のユーザーオブジェクトは、次のようになります
<?php
namespace MyBundle\Entity\Website;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use MyBundle\Entity\Website\Role as Role;
use MyBundle\Entity\Website\Provider as Provider;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
/**
* User.
*
* @ORM\Table(name="users", schema="website")
* @ORM\Entity(repositoryClass="MyBundle\Repository\Website\UserRepository")
* @UniqueEntity(fields="login", message="Login already taken")
* @UniqueEntity(fields="email", message="Email already taken")
*/
class User implements UserInterface, \Serializable {
/**
* The login.
*
* @var string @Assert\Length(max=50)
* @Assert\NotBlank()
* @ORM\Column(name="user_login", type="string", length=50, nullable=false, unique=true)
* @ORM\Id
*/
private $login;
/**
* The user name.
*
* @var string @ORM\Column(name="user_name", type="string", length=50, nullable=true)
* @Assert\Length(max=50)
*/
private $username;
そして、それはたUserInterfaceを実装して私のコードでは唯一のものです。私はFOSUserBundleを使用していません。アノテーションパーサがデータオブジェクトとその親をインスタンス化しようとするフォームを検証するときのように見えます。
"$ this-> createFormBuilder($ user、...")を使用してコントローラの関数でフォームを作成しようとしましたが、FormBuilderInterfaceで区切られたクラスでフォームを作成しようとしましたが、しかし、問題は、どちらの場合に表示されます。
私は「data_class」オプションを設定しようとしたが、問題が残っている。
私は、ログインフィールドを残して、フォーム内のフィールドのほとんどをコメントしましたしかしそれはまだ同じです。
何か助けてください...
役立つ情報はほとんどありません。 – brzuchal
ファイル名を確認し、gitを使用している場合は、ファイル名が正しいことを確認してください。 Gitに置かれた元のファイルがSomeinterfaceであり、SomeInterfaceに名前が変更されたことが私に起こりました。 Gitは大文字と小文字を区別しないようですが、PHPはです。 – Carlos
このユーザーの投稿フォームタイプ。また、このインターフェースを実装していないとどうなりますか? – mmmm