我试图在FuelPHP中建立一种关系,但我得到了以下错误:
Fuel\Core\Database_Exception 23000 : SQLSTATE23000:完整性约束违反:1452年不能添加或更新子行:外键约束失败(
filmestorrentz.filmes_tags,constraintfilmes_tags_filme_idREFERENCES (filme_id)引用filmes(id),在update级联上不执行任何操作),查询:“插入到filmes_tags(filme_id,tag_id)值('',‘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
发布于 2016-04-20 23:00:10
问题是,在我看来,有一个隐藏字段,其中保留了id的值来编辑注册表,只是给出了一个unset(数据‘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']);
}
}https://stackoverflow.com/questions/36754153
复制相似问题