Php Symfony3条令查询生成器
我正在使用ORM编写Symfony3应用程序 我有一个包含所有属性及其setter和getter的实体 正在尝试构建,以便我可以根据电子邮件地址检索行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
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);
"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但是谢谢你发现了它。这是唯一的问题。没问题,通常我们需要另一个人来帮我们检查代码。