我正在尝试在FuelPHP中建立关系,但我收到以下错误:
Fuel \ Core \ Database_Exception [23000]: SQLSTATE [23000]:完整性约束违规:1452无法添加或更新子行:外键约束失败(
filmestorrentz
。filmes_tags
,CONSTRAINTfilmes_tags_filme_id
FOREIGN KEY(filme_id
)REFERENCESfilmes
(id
)ON UPETE UP ACTION ON UPDATE CASCADE)查询:“INSERT INTOfilmes_tags
(filme_id
,tag_id
)VALUES(''' ,'1')“
我不知道为什么但是FuelPHP正在生成一个空白的filme_id查询。
在Model_Filme模型中,我有一个保存表单数据的函数:
public static function save_filme()
{
$data = Input::post('data');
$val = static::validate_filme();
if ($val->run()) {
if ($data['id']) {
$filme = static::find($data['id'])->set($data);
unset($filme->tags);
} else {
$filme = static::forge($data);
}
foreach ($data['tags'] as $tag_id) {
$filme->tags[$tag_id] = Model_Tag::find($tag_id);
}
$filme->save(); return array($filme, true, null, null);
} else {
return array(static::forge($data), false, $val->error(), $data['tags']);
}
}
我做错了什么?我正在使用FuelPHP 1.8
答案 0 :(得分:0)
问题是在我看来有一个隐藏字段,其中保存id的值来编辑注册表,只是给了一个未设置(data ['id'])。解决!
public static function save_filme()
{
$data = Input::post('data');
$val = static::validate_filme();
if ($val->run()) {
if ($data['id']) {
$filme = static::find($data['id'])->set($data);
unset($filme->tags);
} else {
unset($data['id']);
$filme = static::forge($data);
}
foreach ($data['tags'] as $tag_id) {
$filme->tags[$tag_id] = Model_Tag::find($tag_id);
}
$filme->save(); return array($filme, true, null, null);
} else {
return array(static::forge($data), false, $val->error(), $data['tags']);
}
}