Это моя структура базы данных:Yii CActiveRecord отношение по внешнему ключу отношения
CREATE TABLE `rs_payment` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`amount` int(11) NOT NULL DEFAULT '0',
`user_fid` int(11) NOT NULL,
`payment_created_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`payment_end_date` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `user_fid` (`user_fid`),
CONSTRAINT `rs_payment_ibfk_1` FOREIGN KEY (`user_fid`) REFERENCES `rs_user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `rs_payment_to_complex` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`payment_fid` int(11) NOT NULL,
`complex_fid` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `payment_fid` (`payment_fid`),
KEY `complex_fid` (`complex_fid`),
CONSTRAINT `rs_payment_to_complex_ibfk_2` FOREIGN KEY (`complex_fid`) REFERENCES `rs_complex` (`id`),
CONSTRAINT `rs_payment_to_complex_ibfk_1` FOREIGN KEY (`payment_fid`) REFERENCES `rs_payment` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `rs_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`email` varchar(258) NOT NULL,
`password` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `rs_complex` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` text NOT NULL,
`reservation_schedule` tinyint(4) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
А это мои отношения в модели PaymentToComplex:
public function relations()
{
return array(
'complexF' => array(self::BELONGS_TO, 'Complex', 'complex_fid'),
'paymentF' => array(self::BELONGS_TO, 'Payment', 'payment_fid'),
'userF' => array(self::BELONGS_TO, 'User', 'payment_fid'),
//'userF' => array(self::BELONGS_TO, 'User', 'paymentF.user_fid'),
);
}
Сложных и платежные отношения работы Колодец. Отношение пользователя фактически связано с запросом следующим образом: LEFT OUTER JOIN rs_user userF ON (t.payment_fid=userF.id)
.
Мне нужно обновить внешний ключ userF
, чтобы присоединиться к user_fid
столбец таблицы rs_payment
. Комментируемый код не работает.
Благодарим за помощь.
Большое спасибо. Только небольшое изменение в отношении. HAS_ONE работает для меня. –