我有以下表格:
-- -----------------------------------------------------
-- Table `product`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `product` (
`id` INT NOT NULL AUTO_INCREMENT ,
`productName` VARCHAR(255) NULL ,
`s7location` VARCHAR(255) NULL ,
PRIMARY KEY (`id`) )
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `pages`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `pages` (
`id` INT NOT NULL AUTO_INCREMENT ,
`productID` INT NULL ,
`pageName` VARCHAR(255) NOT NULL ,
`isBlank` TINYINT(1) NULL ,
`pageOrder` INT(11) NULL ,
`s7page` INT(11) NULL ,
PRIMARY KEY (`id`) ,
INDEX `productID` (`productID` ASC) ,
CONSTRAINT `productID`
FOREIGN KEY (`productID` )
REFERENCES `product` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `field`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `field` (
`id` INT NOT NULL AUTO_INCREMENT ,
`pagesID` INT NULL ,
`fieldName` VARCHAR(255) NOT NULL ,
`fieldType` VARCHAR(255) NOT NULL ,
`fieldDefaultValue` VARCHAR(255) NULL ,
PRIMARY KEY (`id`) ,
INDEX `id` (`pagesID` ASC) ,
CONSTRAINT `pagesID`
FOREIGN KEY (`pagesID` )
REFERENCES `pages` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
我已经让 CRUD 在“产品”表上工作。
//addproduct.php
class page_addproduct extends Page {
function init(){
parent::init();
$crud=$this->add('CRUD')->setModel('Product');
}
}
这行得通。但我需要得到它,以便在创建新产品时它基本上允许我将新行添加到页面和字段表中。
例如,表格中的产品是要呈现多个页面的印刷产品(如贺卡)。第 1 页可能有 2 个可以自定义的文本字段,第 2 页可能有 3 个文本字段,一个用于定义文本大小的滑块和一个用于选择颜色的下拉列表,第 3 页可能有五个都可以自定义的文本字段. 所有三个页面(以及所有表单元素,在本示例中为 12 个)都与 1 个产品相关联。
所以当我创建产品时,我可以添加一个按钮来为该产品创建一个页面,然后在页面中我可以添加一个按钮来添加一个新的表单元素字段吗?
我对此还有些陌生,所以我的数据库结构可能并不理想。我很感激任何建议和反馈!有人可以向我指出一些关于如何实现这一点的信息、教程、文档、想法、建议吗?