2012-05-10 71 views
0

我试图在同一模型读取后保存数据。这里是我的代码:读取后保存数据

public function partner($postid, $partner){ 
    $this->Partner->id = $postid; 
    $this->Partner->id = $partner; 
    $this->Partner->ip = $_SERVER['REMOTE_ADDR']; 
    $result = $this->Partner->read(); 
    if($result){ 
     $time = $result['Partner']['time']; 
     pr($result); 
    } 



    $data = array('id' => $partner, 
        'post' => $postid, 
        'time' => time(), 
        'cash' => '0.001', 
        'ip' => $_SERVER['REMOTE_ADDR']); 
    $this->Partner->save($data); 
} 

,它只是更新的数据,但不会将其保存为一个新行

+1

你可以发布save()函数吗? – gunnx

+0

可能是你将错误的数据传递给数组字段ID,可能是它应该是$ postid。 –

+0

这两行令人困惑:'$ this-> Partner-> id = $ postid; $ this-> Partner-> id = $ partner;'。你为什么做这个?我不认为将'$ partner'传递给'$ data ['id']'变量是正确的... – shadyyx

回答

0

$this->Partner->save($data);之前,调用$this->Parter->create();,将设置Partner模式来拯救一个新行。

编辑:除非id是您模型的主键,并且您将其设置为数据库中已存在的值,在这种情况下,无论您是否使用$model->create(),它都会更新。 (我认为)。

+1

为了澄清,您可以更新几种不同的方式:设置'Model-> id',其中'Model - > create()'将重置,或者传递保存数据中的PK字段,其中'Model-> create()'将* not * reset。无论如何,他在数据中传递身份证,所以总是会更新...... – jeremyharris

+0

的确,假设'id'是当然的主键(这很可能)。 – Joep