[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Почему не срабатывает GRUD в YII
lodas
Здравствуйте уважаемые форумчане. Решил добавить операции GRUD к таблице user. Зашел в gii, ввел как положенно модель и контролер.
Выдает ошибку:
Цитата
Table 'user' has a composite primary key which is not supported by crud generator.

Чуть ниже скрин таблицы.
С чем это может быть связанно и как это лечить?
h234
Добавь в User
public function primaryKey()
{
return 'id_pol';
}
lodas
h234, не помогло. Может Grud не создается для взаимосвязанных таблиц?
bestxp
Так явно же написано, что grud не поддерживает таблицы с композитными первичными ключами, то есть, поменяй индексы, либо делай руками
lodas
bestxp, поменять индексы на какие? На unique? Я везде делал первичные ключи с автоинкриментом, вот так:
-- -----------------------------------------------------
--
Table `DipYii`.`Role`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `DipYii`.`Role` (
`id_role` INT NOT NULL AUTO_INCREMENT ,
`name_role` VARCHAR(45) NULL ,
PRIMARY KEY (`id_role`) )
ENGINE = InnoDB;


-- -----------------------------------------------------
--
Table `DipYii`.`Webmoney`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `DipYii`.`Webmoney` (
`id_web` INT NOT NULL AUTO_INCREMENT ,
`r_purse` VARCHAR(45) NULL ,
`z_purse` VARCHAR(45) NULL ,
PRIMARY KEY (`id_web`) )
ENGINE = InnoDB;


-- -----------------------------------------------------
--
Table `DipYii`.`Visa`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `DipYii`.`Visa` (
`id_visa` INT NOT NULL AUTO_INCREMENT ,
`number_cart` INT NULL ,
PRIMARY KEY (`id_visa`) )
ENGINE = InnoDB;


-- -----------------------------------------------------
--
Table `DipYii`.`Payment_account`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `DipYii`.`Payment_account` (
`id_plat` INT NOT NULL AUTO_INCREMENT ,
`Webmoney_id_web` INT NOT NULL ,
`Visa_id_visa` INT NOT NULL ,
PRIMARY KEY (`id_plat`, `Webmoney_id_web`, `Visa_id_visa`) ,
INDEX `fk_Платежные_счета_Webmoney1_idx` (`Webmoney_id_web` ASC) ,
INDEX `fk_Платежные_счета_Visa1_idx` (`Visa_id_visa` ASC) ,
CONSTRAINT `fk_Платежные_счета_Webmoney1`
FOREIGN KEY (`Webmoney_id_web` )
REFERENCES `DipYii`.`Webmoney` (`id_web` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Платежные_счета_Visa1`
FOREIGN KEY (`Visa_id_visa` )
REFERENCES `DipYii`.`Visa` (`id_visa` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
--
Table `DipYii`.`User`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `DipYii`.`User` (
`id_user` INT NOT NULL AUTO_INCREMENT ,
`email` VARCHAR(45) NULL ,
`login` VARCHAR(45) NULL ,
`password` VARCHAR(45) NULL ,
`name` VARCHAR(45) NULL ,
`surname` VARCHAR(45) NULL ,
`patronymic` VARCHAR(45) NULL ,
`paul` VARCHAR(45) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' NULL ,
`telephone` VARCHAR(45) NULL ,
`city` VARCHAR(45) NULL ,
`address` TEXT NULL ,
`Role_id_role` INT NOT NULL ,
`Payment_account_id_plat` INT NOT NULL ,
PRIMARY KEY (`id_user`, `Role_id_role`, `Payment_account_id_plat`) ,
INDEX `fk_Пользователь_Role1_idx` (`Role_id_role` ASC) ,
INDEX `fk_User_Payment_account1_idx` (`Payment_account_id_plat` ASC) ,
CONSTRAINT `fk_Пользователь_Role1`
FOREIGN KEY (`Role_id_role` )
REFERENCES `DipYii`.`Role` (`id_role` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_User_Payment_account1`
FOREIGN KEY (`Payment_account_id_plat` )
REFERENCES `DipYii`.`Payment_account` (`id_plat` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.