Php 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); 如果您使用的是具体继承,则不需要

使用symfony框架,哪种代码最适合查询数据库表以检查条目是否已经存在

我需要这样的查询:

$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/教义问题,所以请继续关注:)