2

symfony2とdoctrineを使用していますが、次のエラーが発生します。

[セマンティックエラー]プロパティWibiya\WebsiteBundle \ Entity \ Rules ::$RuleIdのアノテーション"@Doc​​trine \ ORM \ Mapping \ RuleId"が存在しないか、自動ロードできませんでした。

エンティティにはRules、列/フィールドが含まれています。

    /**
     * @var integer $RuleId
     * @ORM\RuleId
     * @ORM\Column(name="RuleId", type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $RuleId;

これは私が実行しようとしている関数です:

$em = $this->getDoctrine()->getEntityManager();
$Rules = $em->getRepository('WibiyaWebsiteBundle:Rules')->findAllOrderedByName();

RulesRepositoryクラス:

    public function findAllOrderedByName()
    {
        return $this->getEntityManager()
            ->createQuery('SELECT p FROM WibiyaWebsiteBundle:Rules p ORDER BY p.RuleName ASC')
            ->getResult();
    }

私はこの行を:の下部に配置しようとしましたautoload.php

require __DIR__ . "/../vendor/doctrine/lib/Doctrine/ORM/Mapping/Driver/AnnotationDriver.php";

しかし、同じエラーが発生しました。
私はSymfony2.0.16とDoctrine2.1.6を使用しています

4

2 に答える 2

3

RuleIdDoctrine には注釈はなく、 Id[ドキュメントを参照] だけです。

定義するすべてのエンティティを@ORM\Id主キー フィールドで使用するだけです。

于 2012-09-04T17:24:28.470 に答える
0

@ORM\IdMySqlテーブルの主キーの列名とは関係なく、ドクトリンマッピングの主キーフィールドの単なる注釈です。主キー フィールドの任意の名前を保持し、マッピングで として指定できます@ORM\Column(name="column_name", type="integer")

于 2013-03-25T05:52:20.270 に答える