在phalcon中保存一对多关系数据

时间:2014-07-14 20:29:48

标签: phalcon

我有一个与时间有很多关系的模型课程。我如何更新所有时间。

            $course_Timeing = $course->courseTimings;
             $m = new MultipleIterator();
            $m->attachIterator(new ArrayIterator($this->request->getPost('date', 'string')), 'date');
            $m->attachIterator(new ArrayIterator($this->request->getPost('timeFrom', 'string')), 'timeFrom');
            $m->attachIterator(new ArrayIterator($this->request->getPost('timeTo', 'string')), 'timeTo');
            $i = 0;
            foreach ($m as $unit) {
                //print_r($unit);
                if (!empty($unit[0]) && !empty($unit[1]) && !empty($unit[2])) {
                    $course_Timeing = $course->courseTimings[$i];
                    $course_Timeing->assign(array(
                        //'course_id' => $course->id,
                        'date' => date('Y-m-d', strtotime($unit[0])),
                        'timeFrom' => date('H:i:s', strtotime($unit[1])),
                        'timeTo' => date('H:i:s', strtotime($unit[2])),
                    ));
                }
                $i++;
            }
  

$ course->保存不会保存时间

1 个答案:

答案 0 :(得分:0)

我找到了出路

                $course_Timeing = $course->courseTimings;
                $m = new MultipleIterator();
                $m->attachIterator(new ArrayIterator($this->request->getPost('date', 'string')), 'date');
                $m->attachIterator(new ArrayIterator($this->request->getPost('timeFrom', 'string')), 'timeFrom');
                $m->attachIterator(new ArrayIterator($this->request->getPost('timeTo', 'string')), 'timeTo');
                $i = 0;
                foreach ($m as $unit) {
                    //print_r($unit);
                    if (!empty($unit[0]) && !empty($unit[1]) && !empty($unit[2])) {
                        //$course_Timeing = $course->courseTimings[$i];
                        $course_Timeing[$i]->assign(array(
                            //'course_id' => $course->id,
                            'date' => date('Y-m-d', strtotime($unit[0])),
                            'timeFrom' => date('H:i:s', strtotime($unit[1])),
                            'timeTo' => date('H:i:s', strtotime($unit[2])),
                        ));
                        if (!$course_Timeing[$i]->save()) {
                            foreach ($course_Timeing[$i]->getMessages() as $message) {
                                $this->flash->error($message);
                            }
                        }
                    }
                    $i++;
                }