thinkphp用create更新数据无效

             //修改的部分
        if(I('post.id')){
                 $Department=D('Department');
            if (!$Department->create($_POST,2)){ // 创建数据对象
                $this->error($Department->getError());
            }else{
                $result=$Department->save();

                if(false !== $result){
                    $id = I('post.id');
                    $this->redirect('updateDepartment',array('update'=>"1",'id' =>"$id"));
                }else{
                    $this->error("数据修改失败");
                }
            }

        }
阅读 5.4k
4 个回答

save必须加where条件

  • 首先需要确认D('Department')是不是建了Model类;
  • 如果传的$_POST 里面有主键的话 可以不加条件,

注意:以create() 方法创建数据对象来更新数据,表单中必须包含一个以主键为名称的隐藏域,才能完成保存操作。

if(I('post.id')){
    $Department=D('Department');
    if (!$Department->create($_POST,2)){ // 创建数据对象
        $this->error($Department->getError());
    }else{


        # 新增或修改
        $pk = $Department->getPk();
        $method = empty($Department->$pk) ? 'add' : 'save';

        $result=$Department->$method();

        if(false !== $result){
            $id = I('post.id');
            $this->redirect('updateDepartment',array('update'=>"1",'id' =>"$id"));
        }else{
            $this->error("数据修改失败");
        }
    }
}
新手上路,请多包涵

看了这么多无知的回答,真是误人子弟呀,实在看不下去了,我来说句吧!我自己很早就发现并解决了这个问题,已经写在博客上了,在这就懒得再写一次了!博客地址:http://blog.csdn.net/df981011...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进