Доктрина Бисны 2.1 и 2.2. Аннотация "@Table" никогда не импортировалась. - PullRequest
5 голосов
/ 11 марта 2012

Я привык использовать Zend Mvc вместе с доктриной 2.1 и 2.2, связанной вместе с драйвером bisna.

Для нового проекта я использую драйвер аннотации только для удобства (как всегда). Как только я сгенерировал свои сущности из базы данных и попытался загрузить их, но они продолжают генерировать ошибку:

[Semantical Error] The annotation "@Table" in class MyWheels\Entity\Bmulog was never imported.

Я попытался добавить к ним префикс ORM \, но это не помогло.

мой конфигурационный файл читает:

[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"

pluginPaths.Bisna\Application\Resource\ = "Bisna/Application/Resource"
autoloaderNamespaces[] = Bisna
autoloaderNamespaces[] = Doctrine
autoloaderNamespaces[] = MyWheels
autoloaderNamespaces[] = Symfony

resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0

resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"

resources.doctrine.cache.instances.default.namespace    = "Application_"
resources.doctrine.dbal.connections.default.parameters.dbname   = "mywheels"
resources.doctrine.dbal.connections.default.parameters.user = "root"
resources.doctrine.dbal.connections.default.parameters.password = ""
resources.doctrine.orm.entityManagers.default.metadataDrivers.drivers.0.adapterClass = "Doctrine\ORM\Mapping\Driver\AnnotationDriver"
resources.doctrine.orm.entityManagers.default.metadataDrivers.drivers.0.mappingNamespace = "MyWheels\Entity"
resources.doctrine.orm.entityManagers.default.metadataDrivers.drivers.0.mappingDirs[] = APPLICATION_PATH "\..\library\MyWheels\Entity"
resources.doctrine.orm.entityManagers.default.metadataDrivers.drivers.0.annotationReaderClass = "Doctrine\Common\Annotations\AnnotationReader" 

Кто-нибудь знает, что здесь происходит?

код моей сущности:

<?php

namespace MyWheels\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * MyWheels\Entity\Bmulog
 *
 * @Table(name="bmulog")
 * @Entity
 */
class Bmulog
{
    /**
     * @var integer $id
     *
     * @Column(name="id", type="integer", nullable=false)
     * @Id
     * @GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var text $request
     *
     * @Column(name="request", type="text", nullable=false)
     */
    private $request;

    /**
     * @var text $responce
     *
     * @Column(name="responce", type="text", nullable=false)
     */
    private $responce;

    /**
     * @var string $ip
     *
     * @Column(name="ip", type="string", length=200, nullable=false)
     */
    private $ip;

    /**
     * @var string $browser
     *
     * @Column(name="browser", type="string", length=200, nullable=false)
     */
    private $browser;

    /**
     * @var datetime $date
     *
     * @Column(name="date", type="datetime", nullable=false)
     */
    private $date;


}

Doctrine 2.2.0 приводит к примерно той же ошибке:

[Semantical Error] The annotation "@Doctrine\ORM\Mapping\Table" in class MyWheels\Entity\Bmulog does not exist, or could not be auto-loaded.

1 Ответ

5 голосов
/ 24 февраля 2013

Использование Doctrine\ORM\Mapping подразумевает добавление псевдонима импорта в качестве префикса тегов аннотации Doctrine.

@ORM\Table
@ORM\Entity
@ORM\Column
@ORM\... (Any Doctrine annotation)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...