【问题标题】:extract entities in symfony2 controller在 symfony2 控制器中提取实体
【发布时间】:2015-04-18 14:54:00
【问题描述】:

在我的一个控制器操作中,我可以通过 -

获取所有条目
$entities = $em->getRepository('TestBuilderBundle:Questions')->findAll();

这一行给了我所有的数组对象 -

 array(1) {   [0]=>   object(stdClass)#318 (4) {
     ["__CLASS__"]=>
     string(37) "Test\BuilderBundle\Entity\Questions"
     ["id"]=>
     int(3)
     ["question"]=>
     string(24) "question;ans1;ans2;ans3;"
     ["type"]=>
     string(8) "checkbox"   } }

我怎样才能提取这个对象来得到 -

["question"]=>
    string(24) "question;ans1;ans2;ans3;"

我需要为我的应用程序操作“question;ans1;ans2;ans3;”。 symfony2有什么办法吗?

【问题讨论】:

  • 您可能希望在您的存储库中创建一个自定义函数并使用 DBAL QueryBuilder 构建您的查询
  • $entities[0] 会给你第一个实体。这只是一个花哨的数组。使用 foreach 处理每个实体。

标签: php symfony


【解决方案1】:

这只是@AlexandruFurculita 已经建议的基本起点:

//Test/BuilderBundle/Entity/QuestionsRepository.php
class QuestionsRepository extends EntityRepository
{
    ...
    public function getByColumns($columns)
    {
        return $this->createQueryBuilder('q')
            ->select(implode(', ', array_map(function ($item) { return 'q.'.$item; }, $columns)))
            ->getQuery()
            ->getResult();
    }
}

// and inside your controller
$questions = $em->getRepository('TestBuilderBundle:Questions')->getByColumns(['question', 'whatheverElse']);

【讨论】:

    猜你喜欢
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多