【问题标题】:FuelPHP Many to ManyFuelPHP 多对多
【发布时间】:2016-04-20 20:08:29
【问题描述】:

我正在尝试在 FuelPHP 中建立关系,但出现以下错误:

Fuel\Core\Database_Exception [ 23000 ]: SQLSTATE[23000]:完整性约束违规:1452 无法添加或更新子行:外键约束失败(filmestorrentz.filmes_tags, CONSTRAINT filmes_tags_filme_id FOREIGN KEY (filme_id) REFERENCES filmes (@987654328 @) ON DELETE NO ACTION ON UPDATE CASCADE) with query: "INSERT INTO filmes_tags (filme_id, tag_id) VALUES ('', '1')"

我不知道为什么,但 FuelPHP 正在生成一个带有空白 filme_id 的查询。

型号:Model_Filme、Model_Tag

在 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

【问题讨论】:

    标签: php fuelphp


    【解决方案1】:

    问题是,在我看来,有一个隐藏字段,其中保留了 id 的值来编辑注册表,只是给出了一个 unset(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']);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多