Doctrine\ORM\Mapping を ORM として使用することに問題があります。Symfony2 でプロジェクトを作成し、mysql でいくつかのテーブルを作成します。次に、次のものを使用してエンティティをインポートします。
php app/console doctrine:mapping:import AcmeMainBundle annotation
次に、エンティティを生成します
php app/console doctrine:generate:entities AcmeMainBundle
すべて良さそうです:
<?php
namespace Acme\MainBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Article
*
* @ORM\Table(name="article")
* @ORM\Entity
*/
class Article
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
.....
しかし、このオームは機能していません。リポジトリを使用しようとすると:
* @ORM\Entity(repositoryClass="Acme\MainBundle\Repository\ArticleRepository")
そして、QueryBuilderで独自の選択を作成すると、この機能が表示されません。コントローラーでは、次の方法でメソッドを表示してみます。
var_dump(get_class_methods($this->getDoctrine()->getManager()->getRepository('AcmeMainBundle:Article')));
ただし、これの戻り値は次のとおりです。
array (size=12)
0 => string '__construct' (length=11)
1 => string 'createQueryBuilder' (length=18)
2 => string 'createNamedQuery' (length=16)
3 => string 'createNativeNamedQuery' (length=22)
4 => string 'clear' (length=5)
5 => string 'find' (length=4)
6 => string 'findAll' (length=7)
7 => string 'findBy' (length=6)
8 => string 'findOneBy' (length=9)
9 => string '__call' (length=6)
10 => string 'getClassName' (length=12)
11 => string 'matching' (length=8)
関数がないと、ORMが機能しないことがわかった後、注釈でエラーを実行しようとすると
/**
* Article
*
* @ORM\XXXXXXXXXXXXXXXXXTable(name="article")
* @ORM\Entity
*/
私はエラーをバックアップしません。
Symfony2 と doctrine を最新の composer.json を使用して Windows8 にインストールし、すべてのインストール手順を正しく実行しました。
app/autoload.php は次のとおりです。
<?php
use Doctrine\Common\Annotations\AnnotationRegistry;
use Composer\Autoload\ClassLoader;
/**
* @var ClassLoader $loader
*/
$loader = require __DIR__.'/../vendor/autoload.php';
AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
return $loader;
このエラーがいつ見つかるかわかりません。エンティティは機能していますが、ORM マッピングは機能していません。私が見つけることができるとき、Plsは私にcomの手がかりを見せてくれます.
ありがとうストウパ