我使用 Yii 应用程序进行了相对简单的设置,但在以下情况下我很难跨表访问数据:
两张表:
payments_info (id, data)
:其中 id 是主自增键,模型类名称 PaymentInfo
payments (id, payment_id, other_columns)
: 这里 id 又是一个主键, payment_id 是外键,指向 payment_info 表中的一条记录,模型类名 Payment
在 Payment 模型类中的关系数组中,我有以下内容:
'payment_id'=>array(self::BELONGS_TO, 'PaymentInfo', 'id'),
我没有在 PaymentInfo 模型的关系中添加任何内容,因为从技术上讲,它对另一个表一无所知。
我有一个控制器从 Payments 模型创建一个 CActiveDataProvider 并显示所有记录。在其中,我想要一个字段来显示 PaymentInfo 模型中的“数据”列,但我不知道如何到达那里。
在控制器的 cdbcriteria 中,用于创建我尝试使用的数据提供程序:
$criteria->with = array('payment_id');
然后在视图中,在 CGridView 的 columns 变量中,它显示了我添加的数据提供者:
array(
'name'=>'payment_id',
'visible'=>true,
'value'=> $data->payment_id->data,
),
我还尝试了在 $data 变量周围添加 ' 或 " 的不同组合,但到目前为止没有成功。我设法显示正确的 payment_id 但我不知道如何显示另一个表中的 'data' 值。任何提示表示赞赏!