首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用LibPhoneNumber的DQL

使用LibPhoneNumber的DQL
EN

Stack Overflow用户
提问于 2016-02-27 20:03:43
回答 1查看 54关注 0票数 0

我有一个传递给存储库方法的LibPhoneNumber对象$phone。在我的存储库方法中,我有:

代码语言:javascript
复制
    return $this->getEntityManager()
        ->createQuery(
            'SELECT p, m FROM AppBundle:Phone p JOIN p.member m WHERE p.phoneNumber = :phone AND m.allowFind = TRUE'
        )
        ->setParameter("phone", $phone)
        ->getOneOrNullResult();

问题在于生成并运行的查询按字面意思插入“Object(libphonenumber\PhoneNumber)”

代码语言:javascript
复制
WHERE p0_.phone_number = 'Object(libphonenumber\\PhoneNumber)' AND m1_.allow_find = 1

如果我使用默认的存储库方法findOneByPhoneNumber($phone),它会正确地将电话号码转换为存储在数据库+14565551212中的格式

EN

回答 1

Stack Overflow用户

发布于 2016-02-27 23:47:38

所以我想我想通了..。由于某种原因,看起来我需要手动进行转换,而内置的findOneByxxxxx()方法则自动执行某种方式。也许有人可以对此发表评论?

无论哪种方式,我都是通过执行以下操作手动进行转换的:

代码语言:javascript
复制
    $phoneNumberUtil = PhoneNumberUtil::getInstance();
    $number = $phoneNumberUtil->format($phone, \libphonenumber\PhoneNumberFormat::E164);

然后将$number传递给setParameter("phone". $number)方法,而不是作为对象的$phone

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35669493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档