【发布时间】:2021-12-28 16:44:54
【问题描述】:
我需要在存储库类中创建一个原始查询,但我遇到了错误
class UserRepository extends EntityRepository
{
public function usertoExpirate(){
$query = 'SELECT email
FROM user
WHERE type NOT IN("deleted", "admin")
AND expiration_date < DATE_ADD(NOW(),INTERVAL -3 MONTH)';
$statement = $this->getConnection()->prepare($query);
$statement->execute();
$user_to_expirate_password = $statement->fetchAll();
return $user_to_expirate_password;
}
我收到了这个错误
Undefined method 'getConnection'. The method name must start with either findBy, findOneBy or countBy!
【问题讨论】:
-
好吧,让我们看看。未定义的方法错误消息强烈暗示该类没有具有该特定名称的方法。您可能对 find 的东西有点困惑,但这是因为存储库类实际上允许您在不添加实际方法的情况下执行 findByType 之类的操作。真的只是分心。那么如何获得连接呢?原来 EntityManager::getConnection 存在。我将把它作为阅读代码的练习,让您确定如何从存储库中获取实体管理器。
标签: php symfony symfony-3.4