Php Symfony3条令查询生成器

Php Symfony3条令查询生成器,php,doctrine,symfony,Php,Doctrine,Symfony,我正在使用ORM编写Symfony3应用程序 我有一个包含所有属性及其setter和getter的实体 正在尝试构建,以便我可以根据电子邮件地址检索行 my query: /** * @param $email */ public function getUserByEmail($email) { $repository = $this->db->EntityManagerORM() ->getRepositor

我正在使用ORM编写Symfony3应用程序

我有一个包含所有属性及其setter和getter的实体

正在尝试构建,以便我可以根据电子邮件地址检索行

my query:

      /**
     * @param $email
     */
    public function getUserByEmail($email)
{
    $repository = $this->db->EntityManagerORM()
        ->getRepository('TestBundle:User');

    $query = $repository->createQueryBuilder('t')
        ->where('t.emial = :email')
        ->setParameter(':email', $email)
        ->getQuery();

    $test = $query->getResult();

    var_dump($test);
  • $this->db是一个EntityManager,它是一个服务,在我的_构造中实例化。所以我要做的是检索实体,他们创建一个queryBuilder,我想在其中检索一整行,email==到给定的电子邮件

    我得到的答复是:

    "Notice: Undefined index: [Semantical Error] line 0, col 63 near 'emial
    
    =:ema”:错误:类测试\TestBundle\Entity\User没有字段或

    名为“埃米尔”的协会


  • 我的代码中有可疑的东西吗?

    设置参数函数中不需要

    代码中的另一个错误是,用户表没有名为
    emial
    的列。请仔细检查并用适当的名称替换它

    因此,您的查询将如下所示

    $query = $repository->createQueryBuilder('t')
            ->where('t.RIGHT_COLUMN_NAME = :email')
            ->setParameter('email', $email)
            ->getQuery();
    

    在上面的代码中,用正确的列名替换
    右列名

    设置参数函数中不需要

    代码中的另一个错误是,用户表没有名为
    emial
    的列。请仔细检查并用适当的名称替换它

    因此,您的查询将如下所示

    $query = $repository->createQueryBuilder('t')
            ->where('t.RIGHT_COLUMN_NAME = :email')
            ->setParameter('email', $email)
            ->getQuery();
    

    在上面的代码中,用正确的列名替换
    RIGHT\u COLUMN\u NAME

    这是电子邮件的拼写。更改为:

    $query = $repository->createQueryBuilder('t')
          ->where('t.email = :email')
          ->setParameter(':email', $email)
          ->getQuery();
    

    这应该可以解决问题。

    这是电子邮件的拼写问题。更改为:

    $query = $repository->createQueryBuilder('t')
          ->where('t.email = :email')
          ->setParameter(':email', $email)
          ->getQuery();
    

    这应该可以解决问题。

    和:我只是添加到以区分参数和table.column,因此代码更易于阅读;和:我只是添加到以区分参数和table.column,因此代码更易于阅读omg我感到有点尴尬:p但感谢您发现了它。这是唯一的问题。没问题,通常我们需要另一个pe我觉得有点尴尬:P但是谢谢你发现了它。这是唯一的问题。没问题,通常我们需要另一个人来帮我们检查代码。