Php Symfony框架-检查数据库条目是否存在
使用symfony框架,哪种代码最适合查询数据库表以检查条目是否已经存在 我需要这样的查询:Php Symfony框架-检查数据库条目是否存在,php,symfony1,doctrine-inheritance,Php,Symfony1,Doctrine Inheritance,使用symfony框架,哪种代码最适合查询数据库表以检查条目是否已经存在 我需要这样的查询: $q = $this->createQuery('t') ->where('t.email = ?', $email) ->andWhere('t.type = ?','newsletter'); 最简单的方法是,假设您在一个Doctrine_表实例中,看起来您是: $this->findOneByEmail($email); 如果您使用的是具体继承,则不需要
$q = $this->createQuery('t')
->where('t.email = ?', $email)
->andWhere('t.type = ?','newsletter');
最简单的方法是,假设您在一个Doctrine_表实例中,看起来您是:
$this->findOneByEmail($email);
如果您使用的是具体继承,则不需要类型
,因为它将通过DQL回调添加(假设您启用了它们),但为了完整性:
$this->findOneByEmailAndType($email, 'newsletter');
如果存在,则返回Doctrine_记录;如果不存在,则返回null
您还可以在查询中使用计数:
$exists = $this->createQuery('t')
->where('t.email = ?', $email)
->andWhere('t.type = ?','newsletter') // your probably don't need this
->count();
这将返回与查询匹配的记录数。这是一种更有效的方法,因为它不会使结果水合物化。最简单的方法是,假设您在一个条令表实例中,看起来您是:
$this->findOneByEmail($email);
如果您使用的是具体继承,则不需要类型
,因为它将通过DQL回调添加(假设您启用了它们),但为了完整性:
$this->findOneByEmailAndType($email, 'newsletter');
如果存在,则返回Doctrine_记录;如果不存在,则返回null
您还可以在查询中使用计数:
$exists = $this->createQuery('t')
->where('t.email = ?', $email)
->andWhere('t.type = ?','newsletter') // your probably don't need this
->count();
这将返回与查询匹配的记录数。这是一种更有效的方法,因为它不会使结果水合。试试这个
您可以直接在表单类中定义
我想这比其他的容易多了。试试这个 您可以直接在表单类中定义
我认为这比其他的容易多了。什么是
$this
?如果您使用的是具体的继承,您不需要在上的何处键入什么是$this
?如果您使用的是具体的继承,那么您不需要在类型上的任何位置输入,这太棒了!这就是我要找的。谢谢;)没问题,我一直在关注symfony/教义问题,所以请继续关注:)太好了!这就是我要找的。谢谢;)没问题,我一直在关注symfony/教义问题,所以请继续关注:)