ドクトリンでレコードを追加しようとすると、「メッセージ: クラス "Application_Model_MbsUsers" は有効なエンティティまたはマップされたスーパー クラスではありません」というエラー メッセージが表示されます。
これは私が使用したコードです
require APPLICATION_PATH . '/' . 'models/Application_Model_MbsUsers.php';
$user = new Application_Model_MbsUsers;
$user->setDisplayName( 'moahemd' );
$user->setUserLogin( 'adminss' );
$user->setUserPass( 'password' );
$user->setUserActivationKey( 'aass' );
$user->setUserRegistered( null );
$user->setUserEmail( 'eng.sda@yahoo.com' );
$user->setUserRole( 'admin' );
$this->getRequest()->_em->persist( $user );
$this->getRequest()->_em->flush();
モデル フォルダー 'application\models' にエンティティを配置します。
これは私のbootstarpコードです
protected function _initDoctrine()
{
# doctrine loader
require_once (APPLICATION_PATH .
DIRECTORY_SEPARATOR . '..' .
DIRECTORY_SEPARATOR . 'library' .
DIRECTORY_SEPARATOR . 'Doctrine' .
DIRECTORY_SEPARATOR . 'Common' .
DIRECTORY_SEPARATOR . 'ClassLoader.php'
);
$doctrineAutoloader = new \Doctrine\Common\ClassLoader('Doctrine', APPLICATION_PATH .
DIRECTORY_SEPARATOR . '..' .
DIRECTORY_SEPARATOR . 'library'
);
$doctrineAutoloader->register();
# configure doctrine
$cache = new Doctrine\Common\Cache\ArrayCache;
$config = new Configuration;
$config->setMetadataCacheImpl( $cache );
echo APPLICATION_PATH . DIRECTORY_SEPARATOR . 'models';
$driverImpl = $config->newDefaultAnnotationDriver( APPLICATION_PATH . DIRECTORY_SEPARATOR . 'models' );
$config->setMetadataDriverImpl( $driverImpl );
$config->setQueryCacheImpl( $cache );
$config->setProxyDir( APPLICATION_PATH );
$config->setProxyNamespace( 'Proxies' );
$config->setAutoGenerateProxyClasses( TRUE );
$this->_registry->doctrine = new stdClass();
$this->_registry->doctrine->_em = EntityManager::create( $this->_registry->config->application->doctrine->connection->toArray(), $config );
}
と私のエンティティ
Doctrine\ORM\Mapping を ORM として使用します。
/**
* Application_Model_MbsUsers
*
* @ORM\Table(name="mbs_users")
* @ORM\Entity
*/
class Application_Model_MbsUsers
{
/**
* @var string
*
* @ORM\Column(name="user_login", type="string", length=64, nullable=false)
*/
private $userLogin;
/**
* @var string
*
* @ORM\Column(name="user_pass", type="string", length=64, nullable=false)
*/
private $userPass;
.....
なぜこの問題が発生するのか疑問に思っています。ググって解決策が見つからないので、助けてください....