내 MySQL 테이블의 기본 테이블은 2 개의 열 (space_id (INTEGER) 및 DATE)의 합성입니다. 그것은 원시 SQL에서 잘 작동Yii 복합 기본 키가있는 모델
CREATE TABLE `ck_space_calendar_cache` (
`space_id` int(11) NOT NULL,
`day` date NOT NULL,
`available` tinyint(1) unsigned NOT NULL DEFAULT '0',
`price` decimal(12,2) DEFAULT NULL,
`offer` varchar(45) DEFAULT NULL,
`presale_date` date DEFAULT NULL,
`presale_price` decimal(12,2) DEFAULT NULL,
`value_x` int(11) DEFAULT NULL,
`value_y` int(11) DEFAULT NULL,
PRIMARY KEY (`space_id`,`day`),
KEY `space` (`space_id`),
CONSTRAINT `space` FOREIGN KEY (`space_id`) REFERENCES `ck_space` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
는, 내가 중복을 만들려고하면 불평하지만, 내가 행을 같은 날 또는 같은 space_id를 만들 수 있습니다.
그러나), YII 새로운 개체()를 사용하여 때 (저장, 그것은 마치 "space_id는"고유해야합니다 뿌려줍니다.
모델이 중요한 경우 "Giix"를 사용하여 모델을 생성했습니다.
나는 모델에이 코드를 추가하려고하지만, 도움이되지 않았다 :public function primaryKey(){
return array('space_id', 'day');
}
giix가 일부 유효성 검사를 수행하고있었습니다. –