У меня есть 4 таблицы оплаты заказов пользователей и профилей. Платежи имеют отношение belongs_to
к заказу. Заказ имеет отношение belongs_to
с пользователем, а у пользователя есть_много профилей.
При отображении платежей в cgridview мне нужно отобразить имя и фамилию пользователя, хранящиеся в профиле.
Я пытался использовать:
$data->order->user->profiles->firstname;
Также попытался добавить имя параметра в класс модели Payment и попытался создать метод установки как:
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,
));
}