Phreeze Criteria的应用,在两个表里面查找多个符合条件的数据

 
    
    public function  GetDataJson(){
        $cv_id=$this->getRouter()->GetUrlParam('cvId');
        $ds=$this->GetSets($cv_id);
        echo '<pre>';
        print_r($ds);
        $data_json=json_encode($ds); 将结果集转化为json,
        echo $data_json;
    }
        /*
     * 返回查找结果的数据集,并且拼凑出自己想要的形式。

返回结果类型:
Array
(
    [11] => Array
        (
            [cr_id] => 1
            [v_id] => 1
            [v_name] => 我爱我家
            [v_link] => http://2
            [is_part] => 0
            [duration] => 5630
            [begin_time] => Array
                (
                    [1] => 2356666
                    [22] => 523642
                )

        )

    [12] => Array
        (
            [cr_id] => 1
            [v_id] => 2
            [v_name] => 我爱我家
            [v_link] => http://3
            [is_part] => 0
            [duration] => 5638
            [begin_time] => Array
                (
                    [23] => 1256
                )

        )

)


*/
    protected function GeSets($cv_id) {
        include_once 'Model/ZjCarouselVideo.php';
        include_once 'Model/ZjlCarouselEpg.php';
        $criteria_carousel_video = new ZjCarouselVideoCriteria();
        $criteria_carousel_epg = new ZjCarouselEpgCriteria();
        $criteria_carousel_video->cr_id_Equals =$cv_id;
        $carousel_video = $this->Phreezer->Query("ZjCarouselVideo",$criteria_carousel_video);
        $carousel_video = $carousel_video->ToObjectArray(true,$this->SimpleObjectParams());
        foreach($carousel_video as $key => $val){
            foreach($val as $k =>$v){
                if ($k=='id') continue;
                $re_cv[$val->id][$k]=$v;
            }
        }
        foreach($re_cv as $key => $val){
            $criteria_carousel_epg->cr_id_Equals=$val['cr_id'];
            $criteria_carousel_epg->v_id_Equals=$val['v_id'];
            $carousel_video_epg=$this->Phreezer->Query('ZjCarouselEpg',$criteria_carousel_epg);
            $carousel_video_epg=$carousel_video_epg->ToObjectArray(true,$this->SimpleObjectParams());
            $i=0;
            foreach ($carousel_video_epg as $key => $val){
                $epg_info['cr_id']=$val->cr_id;
                $epg_info['v_id']=$val->v_id;
                $epg_info[$i]['cr_epg_id']=$val->cr_epg_id;
                $epg_info[$i]['begin_time']=$val->begin_time;
                $i++;
            }
        $cr_epg[]=$epg_info;
        $criteria_carousel_epg=new ZjCarouselEpgCriteria();
        $epg_info=array();
        }
        foreach ($re_cv as $k_video => $v_video){
            foreach ($cr_epg as $k_epg=>$v_epg){
                if($v_epg['cr_id']==$v_video['cr_id']&&$v_epg['v_id']==$v_video['v_id']){
                    array_shift($v_epg);
                    array_shift($v_epg);
                    foreach ($v_epg as $v_k=>$v_info){
                        $v_video['begin_time'][$v_info['cr_epg_id']]=$v_info['begin_time'];
                    } 
                }
                $re_cv[$k_video]=$v_video;
            }
        }
        return $re_cv;
    }
原文地址:https://www.cnblogs.com/zhangjun516/p/2944061.html