Symfony - Doctrine或Twig - 几次总和

时间:2014-06-25 07:59:03

标签: php loops symfony doctrine-orm twig

我想知道如何用symfony学说加几次(hh:mm:ss)......

知道我得到了这样的实体:

    public function validationFicheTutorielAction(Request $request) {
        $id_tutoriel = $request->get('id_tutoriel');
        $em = $this->getDoctrine()->getManager();
        $tutoriel = $em->getRepository('Video2LearnBddBundle:Tutoriel')->findOneById($id_tutoriel);
    }

我终于获得了一个“教程”,其中包含几个包含“视频”的“章节”。每个视频都有一个持续时间,我想将每个视频的持续时间(从所有章节中加起来......)相加。

回复"$ tutorial"可能如下所示:

Tutorial       
    [0] Chapter         
         [0] Video         
               duration : 01:24:01         
         [1] Video         
               duration : 0:41:41         
    [1] Chapter         
         [0] Video         
               duration : 04:11:01         
         [1] Video
               duration : 00:29:41         
         [2] Video         
               duration : 00:33:41         
    [2] Chapter         
         [0] Video         
               duration : 02:11:09         
         [1] Video         
               duration : 00:02:01         
         [2] Video         
               duration : 00:21:55

是否有现有或其他功能将所有这些时间总计为总持续时间?

我认为解决方案是在foreach中使用foreach然后添加每个持续时间但我不知道如何在教义中这样做...

谢谢:)

1 个答案:

答案 0 :(得分:0)

symfony中有一个合并函数,用于合并一个数组中的所有视频并迭代它们。 http://twig.sensiolabs.org/doc/filters/merge.html

在我看来,你应该在控制器中重新获取持续时间,并将持续时间作为变量传递。

否则你可以将持续时间作为参数存储在Tutorial实体中,并且每次添加视频时,教程的持续时间都会增加视频的持续时间量,但这会给你的实体带来更多逻辑,所以我更喜欢通过合并和迭代合并的数组来递归地获取控制器中的时间,或者在twig模板中获取时间。