0

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の手がかりを見せてくれます.

ありがとうストウパ

4

1 に答える 1

0

問題の解決: エンティティをインポートすると、最初のステップを忘れてしまいます:

doctrine:mapping:convert --force --from-database xml ./src/Acme/MainBundle/Resources/config/doctrine/metadata/orm

次のステップで:

doctrine:mapping:import AcmeMainBundle annotation

注釈が表示されますが、機能しません。

于 2013-11-15T16:48:22.930 に答える