它没有显示我用来查看名称的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
答案 0 :(得分:0)
问题是如果您使用findByPk()
如果找到记录,则返回的结果将是单一模型,但如果您使用findAllByPk()
它将返回一系列模型!
所以你必须在数组上使用循环。