我正在创建一个简单的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 }
当我尝试保存选项时出现问题。它给了我一个:
当我选择2个或更多模板或选择1个选项时, SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
:
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (
分贝.
块, CONSTRAINT
{block_template_id_template_id {1}} {template_id {1}} {模板{1}} ID为FOREIGN KEY (
我的架构是否正确执行我想要做的事情?
由于
答案 0 :(得分:0)
您必须添加外键约束。 onDelete和onUpdate。
Template:
actAs:
Timestampable: ~
columns:
name:
type: varchar(255)
layout:
type: text
Block:
columns:
template_id: { type: integer(8), notnull: true }
content: { type: clob, notnull: true }
relations:
Template:
local: template_id
foreign: id
foreignAlias: Blocks
答案 1 :(得分:0)