Я создаю простую CMS и у меня есть набор шаблонов, каждый шаблон может иметь несколько блоков внутри них.
Таким образом, у меня есть отношение один-ко-многим между шаблонами и блоками (1 шаблон может иметь много блоков)
Итак, когда я создаю блок, у него есть выпадающий список шаблонов, которые я могу связать с блоком sfDoctrineChoice
.
В моем BlockForm.class.php
new sfWidgetFormDoctrineChoice(array('model' => 'Template', 'multiple'=>true, 'expanded'=>false))
Моя схема:
Template:
actAs:
Timestampable: ~
columns:
name:
type: varchar(255)
layout:
type: text
relations:
Block:
class: Block
local: id
foreign: template_id
type: many
foreignType: one
alias: Block
foreignAlias: Template
Block:
columns:
template_id: { type: integer(8), notnull: true }
content: { type: clob, notnull: true }
Проблема возникает, когда я пытаюсь сохранить выбор. Это дает мне:
SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
когда я выбираю 2 или более шаблонов или когда я выбираю 1 вариант:
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (
дб .
блок , CONSTRAINT
block_template_id_template_id FOREIGN KEY (
template_id ) REFERENCES
шаблон (
ID ))
Правильна ли моя схема, чтобы делать то, что я ищу?
Спасибо