0
カスタムエンティティリポジトリを構築しようとすると問題が発生します。Silex DoctrineORM:カスタムエンティティリポジトリ
<?php
namespace Application\Database\EntityRepository;
use Application\Bootstrap as Bootstrap;
use Doctrine\Orm\EntityRepository;
class UserRepository extends \Doctrine\Orm\EntityRepository
{
public function getPasswordByUsername($username)
{
$query = $app['orm.em']->createQuery('SELECT u.password FROM Application\Database\Entities\Users u WHERE (u.username = :username)');
$query->setParameter('username', $username);
return $query->getOneOrNullResult();
}
}
そして、私のブートストラップファイルにこの方法は、ブートストラップクラスのコンストラクタでロードされている:私はこれを行っているCustomRepository.php
ファイルで
"PHP message: PHP Fatal error: Class 'Doctrine\Orm\EntityRepository' not found in /home/user/projects/app/src/Application/Database/EntityRepository/UserRepository.php on line 8
。
use Silex\Provider\DoctrineServiceProvider as silexDocProv;
use Silex\Provider\SessionServiceProvider as silexSessProv;
use Dflydev\Silex\Provider\DoctrineOrm\DoctrineOrmServiceProvider as docProv;
private function initDatabase()
{
$this->app->register(new silexDocProvj(), array(
'db.options' => array(
'driver' => 'pdo_mysql',
'host' => getenv('DBHOST'),
'dbname' => getenv('DBNAME'),
'user' => getenv('DBUSER'),
'password' => getenv('DBPASS')
)
));
$this->app->register(new docProv(), array(
'orm.em.options' => array(
'mappings' => array(
array(
'type' => 'yml',
'namespace' => 'Application\Database\Entities',
'path' => __DIR__ . '/../../app/Config/Mappings'
)
)
)
));
}
そして最後に、私のマッピングファイルがこれを持っている:
Application\Database\Entities\Users:
type: entity
table: users
repositoryClass: \Application\Database\EntityRepository\UserRepository