Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在使用Yii CActiveDataProvider时如何将2个模型与关系连接起来_Php_Mysql_Yii - Fatal编程技术网

Php 在使用Yii CActiveDataProvider时如何将2个模型与关系连接起来

Php 在使用Yii CActiveDataProvider时如何将2个模型与关系连接起来,php,mysql,yii,Php,Mysql,Yii,我想使用2个模型将数据导出到excelHasilPutusan模型和DetilSaksi模型。 当我将CActiveDataProvider与模型HasilPutusan一起使用时,我成功地获得了所有数据以及与该HasilPutusan模型相关的数据关系 如何使用ModelDetilSaksi组合数据 我的控制器: public function actionCetakjalanperistiwa() { if(isset($_POST['PrintJaper'])){

我想使用2个模型将数据导出到excel<代码>HasilPutusan模型和DetilSaksi模型。

当我将CActiveDataProvider与模型HasilPutusan一起使用时,我成功地获得了所有数据以及与该HasilPutusan模型相关的数据关系

如何使用ModelDetilSaksi组合数据

我的控制器:

public function actionCetakjalanperistiwa()
{
    if(isset($_POST['PrintJaper'])){
        $data = $_POST['id_kecelakaan'];
        if($data==''){
            return false;
        }else{
            $dataProvider=new CActiveDataProvider('HasilPutusan', array(
                'criteria'=>array(
                    'condition'=>'id_kecelakaan=:id',
                    'params'=>array(':id'=>$data),
                ),
            ));
        }
        $this->widget('ext.EExcelView', array(
            'grid_mode'=>'export',
            'title' => 'Data Jalan Peristiwa',
            'dataProvider' => $dataProvider,
            'exportType'=>'Excel2007',
            'columns'=>array(
                'id_hasil_putusan',
                'id_detil',
                'id_kapal',
                'idKapal.nama_kapal',
                'idKapal.tahun_pembuatan',
                'idKapal.konstruksi',
                'idKapal.isi_kotor',
                'idKapal.tenaga_penggerak_utama',
                'idKapal.pemilik',
                'idKapal.nakhoda',
                'idKapal.awak_kapal',
                'idKapal.surat_kapal',
            ),
        ));
    }else{
        $this->render('_japer');    
    }
}
在我的tbl_hasil_putusan表中,我有一个id_detil字段,我将使用DetilSaksi模型重新查询第二个表

我的数据库:

如何组合可以联接的两个表,以便调用第二个表中的相关(蓝色箭头)数据


谢谢

您可以在条件数组中使用join。大概是这样的:

$dataProvider=new CActiveDataProvider('HasilPutusan', array(
'criteria'=>array(
    'condition'=>'id_kecelakaan=:id',
    'select' => 't.*, ds.*'
    'join' => 'LEFT JOIN tbl_detil_saksi ds on ds.id_detil = t.id_detil',
    'params'=>array(
        ':id'=>$data),
     ),
));

您是否拥有HasilPutusan模型的relations方法中指定的与DetilSaksi的关系?否。我将使用query检查相同的数据…但如何在'columns'=>数组中获得
id\u-saksi
数据?请尝试重新启用*列选择器,并使用列别名,例如,'select'=>'ds.id\u-saksi作为我的id\u-saksi*'