首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zend3原理实体传递参数

Zend3原理实体传递参数
EN

Stack Overflow用户
提问于 2018-05-09 12:29:07
回答 1查看 35关注 0票数 0
代码语言:javascript
复制
+-----------------+    +------------------------------------+
|   item table    |    |          description table         |
+----+------+-----+    +----+---------+------+--------------+
| id | name | ... |    | id | item_id | lang |     text     |
+----+------+-----+    +----+---------+------+--------------+
|  1 | 1st  | ... |    |  1 |       1 |   en | english text |
+----+------+-----+    +----+---------+------+--------------+
|  2 | 2nd  | ... |    |  2 |       1 |   de | deutsch text |
+----+------+-----+    +----+---------+------+--------------+
                       |  3 |       2 |   en | english text |
                       +----+---------+------+--------------+

class Item {
   ...
   /**
    * @ORM\OneToMany(targetEntity="\Application\Entity\Desc", mappedBy="item")
    */
    protected $description;
   ...
}

class Desc {
   ...
   /**
    * @ORM\ManyToOne(targetEntity="\Application\Entity\Item", inversedBy="description")
    * @ORM\JoinColumn(name="item_id", referencedColumnName="id")
    */
    protected $item;

    /**
     * @ORM\Column(name="text")
    protected $text;

    public function getDesc(/*passing lang*/)
    {
        //there returned array of values, not single result
        return $this->text;
    }
   ...
}

我有两张OneToMany亲戚的桌子。我在实体中设置了@ORM注释标记,并成功地在item实体(EN和De lang)中获得了描述数组。如何通过在DB查询中将lang参数传递给描述实体,而不使用数组迭代和多余的SQL行来只获得一个lang描述?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-10 12:24:33

Item类中,您可以这样做,这将只返回带有指定语言参数的描述:

代码语言:javascript
复制
/**
 *
 * @return \Application\Entity\Desc
 */
public function getDescByLanguage($language)
{
    $criteria = Criteria::create()
        ->where(Criteria::expr()->eq("lang", $language))
        ->setFirstResult(0)
        ->setMaxResults(1);

    $descByLanguage = $this->description->matching($criteria);

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

https://stackoverflow.com/questions/50253474

复制
相关文章

相似问题

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