【问题标题】:easiest way to fetch query to array of object in symfony在 symfony 中获取对对象数组的查询的最简单方法
【发布时间】:2018-04-16 21:03:12
【问题描述】:

View 在数据库中我的意思是:

create view `vMaketType` as select * from MaketType

我在数据库中有一个view,但由于学说现在无法支持,我使用查询,并一一获取:

        $em = $this->getDoctrine()->getManager();
        $con = $this->getDoctrine()->getEntityManager()->getConnection();
        $stmt = $con->executeQuery('SELECT * FROM vMaketType');
        $domain = [];
        //I must fetch it and set it one by one
        foreach ($stmt->fetchAll() as $row){
           $obj = new vMaketType();
           $obj->setId($row["Id"]);
           $obj->setName($row["Name"]);
           $obj->setAmount($row["Amount"]);
           array_push($domain, $obj);
        }

对我来说,这确实需要太多时间来逐个编写代码。

vMaketType 是我创建的一个自定义实体,用于将数据从控制器发送到 [Twig] 视图。

有没有更简单的方法来获取对象数组 vMaketType?

因为我有一个包含 24 个字段的视图,所以我希望有更简单的方法。

【问题讨论】:

  • 你为什么不直接使用 MarketType(我假设那是你的实体和映射信息)?
  • 他说它不适用于 sql 视图,但我不明白为什么:查看:stackoverflow.com/questions/8377671/…
  • 我使用 ORM 生成架构
  • 那你做了什么?

标签: php symfony


【解决方案1】:

也许你可以尝试使用序列化器:

$obj = $this->get('serializer')->deserialize($row, 'Namespace\MaketType', 'array');

代码未经测试,可能会进行调整,see the related doc

【讨论】:

  • 我读过它,但它不能用于查看,这就是我使用手工编码查询的原因。 :) 你应该先阅读我的解释,或者如果有任何方式支持 orm 学说,请阅读 cmiiw
  • 来吧,兄弟,你不明白我在问什么
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-01
  • 2021-11-17
  • 1970-01-01
  • 2011-11-27
  • 1970-01-01
  • 2017-05-25
  • 1970-01-01
相关资源
最近更新 更多