这让我发疯了。我阅读了许多回复和教程,但我无法在这里指出问题所在。
我有 2 个表:tblEmpleado和tblProfesion 这是他们拥有的 MySQL 关系的图像(标记为红色)
当显示来自tblEmpleado的数据时,我想在表tblProfesionCGridView
的属性“描述”上显示。
我尝试使用 claveProfesion.descripcion 无济于事(它显示 FK 的 INT 编号很好,没有“.descripcion”部分)。还尝试使用类似的东西:
数组('header'=>'tableHeaderName', 'value'=>'(isset($data->claveProfesion)) ? $data->claveProfesion->descripcion : null', )
得到“试图获得非对象的属性”。
这是模型代码的 Empleados.php 关系部分:
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'tblcelulars' => array(self::HAS_MANY, 'Tblcelular', 'claveEmpleado'),
'tblcuentabancos' => array(self::HAS_MANY, 'Tblcuentabanco', 'claveEmpleado'),
'idCentroTrabajo' => array(self::BELONGS_TO, 'Tblcentrotrabajo', 'idCentroTrabajo'),
'convenio' => array(self::BELONGS_TO, 'Tblconvenio', 'convenio'),
'claveProfesion' => array(self::BELONGS_TO, 'Tblprofesion', 'claveProfesion'),
);
}
以及 Admin.php 查看代码的 CGridView 部分
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'empleados-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'claveEmpleado',
'nombreEmpleado',
'idCentroTrabajo',
array(
'header'=>'tableHeaderName',
'value'=>'($data->claveProfesion!=null) ? $data->claveProfesion->descripcion : null',
),
'aniosExperiencia',
'telefono2',
'email',
...
array(
'class'=>'CButtonColumn',
),
),
)); ?>
最后,我不知道它是否相关,但在 Model 类"Profesiones.php"
中,关系如下:
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'tblempleados' => array(self::HAS_MANY, 'Tblempleado', 'claveProfesion'),
);
}
谁能帮我解决这个问题?