我有 4 个订单付款用户和个人资料表。付款belongs_to
与订单有关。Order 与 user 有belongs_to
关系,而 user has_many 个人资料。
在 cgridview 中显示付款时,我需要显示存储在配置文件中的用户的名字和姓氏。
我尝试使用:
$data->order->user->profiles->firstname;
还尝试将参数 firstname 添加到 Payment 的模型类并尝试将 setter 方法创建为:
public function getFirstname(){
if ($this->_firstname=== null && $this->order !== null) {
$this->_firstname = $this->order->user->profiles->firstname;
}
return $this->_firstname ;
}
public function setFirstname($value){
$this->_firstname = $value ;
}
但我一直无法得到想要的结果。
编辑:搜索方法有以下代码:
public function search() {
$criteria = new CDbCriteria;
$criteria->with = array('order.user.profiles') ;
. . . .
$criteria->compare('firstname', $this->_firstname, true);
. . . .
return new CActiveDataProvider($this, array(
'criteria' => $criteria,
));
}