使用带有多个id的findByPk,当pageSize超过1时出错(yii)

时间:2014-02-09 10:50:13

标签: php sql yii

它没有显示我用来查看名称的findByPk的名字

这是我的表格:

表1(啷)
1.kode_barang(PK)
2.nama_barang

表2(transaksi)
1.kode_transaksi(PK)
2.kode_barang(FK)

,我将控制器设置为

         public function actionView($id)
    {
            $issueDataProvider=new CActiveDataProvider('detilTransaksi'/*nama file detilTransaksi.php*/, array('criteria'=>array('condition'=>'kode_transaksi=:kodeTransaksi',
                            'params'=>array(':kodeTransaksi'=>$this->loadModel($id)->kode_transaksi),
                    ),'pagination'=>array('pageSize'=>1,
                    ),
             ));
            $this->render('view',array(
                    'model'=>$this->loadModel($id),
                    'issueDataProvider'=>$issueDataProvider,
            ));



    }

` 然后我将_view.php设置为:

<b><?php echo CHtml::encode($data->getAttributeLabel('no_transaksi')); ?>:</b>
<?php echo CHtml::link(CHtml::encode($data->no_transaksi), array('detilTransaksi/view', 'id'=>$data->no_transaksi)); ?>
<br />

<b><?php echo CHtml::encode($data->getAttributeLabel('kode_transaksi')); ?>:</b>
<?php echo CHtml::encode($data->kode_transaksi); ?>
<br />

<b><?php echo CHtml::encode($data->getAttributeLabel('kode_barang')); ?>:</b>
<?php //echo CHtml::encode($data->kode_barang);
 $brg = Barang::model()->findByPK($data->kode_barang);
echo $brg->nama_barang; ?>
<br />

`

这是'view.php'来查看数据

    <h1>View MasterTransaksi #<?php echo $model->kode_transaksi; ?></h1>

<? $this->widget('zii.widgets.CDetailView', array(
    'data'=>$model,
    'attributes'=>array(
        'kode_transaksi',
        'kode_konsumen',
        'kode_areaAsal',
        'kode_areaTujuan',
        'kode_areaPosisi',
        'nomor_kargo',
        'kode_armada',
        'tanggal_transaksi',
        'kode_operator',
    ),
)); 


//getting table 'barang'
     $this->widget('zii.widgets.CListView', array(
     'dataProvider'=>$issueDataProvider,
     'itemView'=>'/detilTransaksi/_view',
     )); 

所有作品并显示table1.nama_barang,我可以从findAllByPk(table2.id_barang)获得,

但是当我将 pageSize设置为大于1 时,它会显示“尝试获取非对象的属性”,我尝试使用findAllByPk,但它提供了相同的错误,

请帮助我获取findByPk()工作

对不起我的坏英语

我在yii书第6章“列出问题”上实施了这个例子, 这是截图, http://1.bp.blogspot.com/--VNO9YLVAms/UvezBvfLAJI/AAAAAAAAA1A/JL2fv31DHN0/s1600/stackoverflow.jpg

我正试图查看超过1'barang'perPages

1 个答案:

答案 0 :(得分:0)

问题是如果您使用findByPk()如果找到记录,则返回的结果将是单一模型,但如果您使用findAllByPk()它将返回一系列模型

所以你必须在数组上使用循环。