首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >怎样才能得到一张有孩子的照片?

怎样才能得到一张有孩子的照片?
EN

Stack Overflow用户
提问于 2018-02-05 18:38:04
回答 1查看 112关注 0票数 0

我有一个简单的问题:

代码语言:javascript
运行
复制
    $query = $qb->select('c, s')
        ->from('AppBundle:City', 'c')
        ->leftJoin('c.streets', 's')
        ->where('o.name = :name')
            ->setParameter('name', 'London')
        ->andWhere('s.numbers > :number')
            ->setParameter('number', 10000);

    $result = $query->getQuery()->getOneOrNullResult();

我想通过关系获取City和streets。如果存在数字大于10000的城市和街道,则此查询工作正常,但是如果城市存在,但没有数字大于10000,则此查询返回null。为什么,如果我使用leftJoin,而不是join?

即使城市没有街道,我怎么去城市呢?

EN

回答 1

Stack Overflow用户

发布于 2018-02-05 20:22:19

如果您的实体Streets实体映射到您的City实体,那么您就不需要这样的查询。

在twig中,只需执行以下操作:

代码语言:javascript
运行
复制
{% for steet in city.streets %}
    <div>steet.name</div>
    <div>steet.length</div>
    <div>steet.etc</div>
{% endfor %}

否则,为了纠正您的查询,它应该是这样的:

代码语言:javascript
运行
复制
public function getCityStreets(City $city, $street) {
    // param $city :: Entity City
    // param $street :: Integer
    return $this->createQueryBuilder()
                ->select('c', 's')
                ->from('AppBundle:City', 'c')
                ->join('AppBundle:Streets', 's')
                ->where('c.name = :city')
                ->andWhere('s.number = :street_number')
                ->andWhere('s.city = :street_city)
                ->setParameters(array(
                    new Parameter('city', $city->getName()),
                    new Parameter('street', $street),
                    new Parameter('street_city', $city->getId()),
                ))
                ->getQuery()
                ->getArrayResult();
}

  • o.name在您的查询中无效...未设置值anywhere
  • 'c.streets', 's'也无效,您可以连接Steets,但不能将来自City
  • leftJoin的列作为join,因为您已将Streets映射到City,因此不应该有任何具有NULL值的

良好实践提示:实体名称永远不能复数

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

https://stackoverflow.com/questions/48620646

复制
相关文章

相似问题

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