Дублирующая запись '2' для ключа 'PRIMARY' в функции автоматического обновления моделистов в Кохане - PullRequest
0 голосов
/ 19 декабря 2011

Я пытаюсь выполнить обновление, но ничего не работает.Я полагаю, это как-то связано с моим обратным вызовом, так как обновление работает хорошо, когда обратный вызов отключен.Это мой пробный блок.

try{
      $updatestat=NULL;
      $updateresult=NULL;
      $id = Arr::get($_POST, 'id');

      $scode=trim(Arr::get($_POST, 'stationcode'));
      $sname=trim(Arr::get($_POST, 'stationname'));
      $dsupdate = new Model_Dstations($id);
      $dsupdate->scode = $scode;
      $dsupdate->sname = $sname;

      $validation = new Validation($_POST);          
  $validation->rule('scode', array($dsupdate, 'check_updatecheck' ), array( ':validation', ':value',':field',$id ));
      $validation->rule('sname', array($dsupdate, 'check_updatecheck' ), array( ':validation', ':value',':field',$id ));
      $result['sql']=$dsupdate->save($validation);}

1 Ответ

0 голосов
/ 21 декабря 2011

Ваш код выглядит как полный беспорядок. Попробуйте это:

  $dsupdate = new Model_Dstations($id);

  $validation = new Validation($_POST);          
  $validation->rule('scode', array($dsupdate, 'check_updatecheck' ), array( ':validation', ':value',':field',$id ));
  $validation->rule('sname', array($dsupdate, 'check_updatecheck' ), array( ':validation', ':value',':field',$id ));

  if ($validation->check()) {
      $dsupdate->scode = $scode;
      $dsupdate->sname = $sname;
      $dsupdate->save();
  }
...