次のテーブルがあります。
-- -----------------------------------------------------
-- 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 にはすべてカスタマイズ可能な 5 つのテキスト フィールドがあります。 . 3 つのページすべて (およびすべてのフォーム要素、この例では 12 個) が 1 つの製品に関連付けられています。
製品を作成するときに、その製品のページを作成するためのボタンを追加して、ページ内に新しいフォーム要素フィールドを追加するためのボタンを追加できますか?
私はまだこれに慣れていないので、私のデータベース構造は理想的ではないかもしれません。提案やフィードバックをいただければ幸いです。これを実装する方法について、情報、チュートリアル、ドキュメント、アイデア、提案を教えてもらえますか?